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它使用键对行元素进行简单排序。