Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用不同长度的行填充数组_Python_Arrays_Pandas_Numpy - Fatal编程技术网

Python 用不同长度的行填充数组

Python 用不同长度的行填充数组,python,arrays,pandas,numpy,Python,Arrays,Pandas,Numpy,所以我发现: 但我真正想要的是: mylist = [[1],[1,2],[1,2,3]] mylist.fill() >>> [[0,0,1], [0,1,2], [1,2,3]] 我知道熊猫的fillna是填充的,但是0在我矩阵的右边,我需要它们在左边。有什么线索吗?我想应该这样做: def fill(a): length = max([len(i) for i in a]) return [[0]*(length-len(i)) + i for i

所以我发现:

但我真正想要的是:

mylist = [[1],[1,2],[1,2,3]]

mylist.fill()
>>> [[0,0,1], [0,1,2], [1,2,3]]

我知道熊猫的fillna是填充的,但是0在我矩阵的右边,我需要它们在左边。有什么线索吗?

我想应该这样做:

def fill(a):
    length = max([len(i) for i in a])
    return [[0]*(length-len(i)) + i for i in a]

fill(mylist)
#[[0,0,1], [0,1,2], [1,2,3]]

我认为这应该做到:

def fill(a):
    length = max([len(i) for i in a])
    return [[0]*(length-len(i)) + i for i in a]

fill(mylist)
#[[0,0,1], [0,1,2], [1,2,3]]

因为您标记了熊猫

pd.DataFrame(mylist).\
  apply(lambda x: sorted(x, key=pd.notnull), 1).\
    fillna(0).astype(int).values.tolist()
Out[89]: [[0, 0, 1], [0, 1, 2], [1, 2, 3]]

因为您标记了熊猫

pd.DataFrame(mylist).\
  apply(lambda x: sorted(x, key=pd.notnull), 1).\
    fillna(0).astype(int).values.tolist()
Out[89]: [[0, 0, 1], [0, 1, 2], [1, 2, 3]]

使用0填充NA和排序值检查它们是否不是0,即

df = pd.DataFrame(mylist)
df.fillna(0).apply(lambda x : sorted(x,key=lambda x : x!=0),1).values.astype(int).tolist()

[[0, 0, 1], [0, 1, 2], [1, 2, 3]]

使用0填充NA和排序值检查它们是否不是0,即

df = pd.DataFrame(mylist)
df.fillna(0).apply(lambda x : sorted(x,key=lambda x : x!=0),1).values.astype(int).tolist()

[[0, 0, 1], [0, 1, 2], [1, 2, 3]]

您是否尝试过用零填充函数?从帮助中心:仔细检查问题的拼写。您是否尝试过用零填充函数?从帮助中心:仔细检查问题的拼写。可能添加astype(int):-)可能添加astype(int):-)这看起来很有趣。如果您可以添加更多详细信息,这将是非常好的works@GarbageCollector使用构造函数create data frame,通过使用NaN或不使用NaN对每行进行排序(如果NaN移到前面),然后转换回list@GarbageCollector它使用键对行元素进行简单排序。这看起来很有趣。如果您可以添加更多详细信息,这将是非常好的works@GarbageCollector使用构造函数create data frame,通过使用NaN或不使用NaN对每行进行排序(如果NaN移到前面),然后转换回list@GarbageCollector它使用键对行元素进行简单排序。