我希望遍历此数据框以增加列 ['B']
和列 ['C']
的列表大小。这对这个例子并不重要,但这些列表将在每次迭代期间输入到一个函数中。
例如:
df = pd.DataFrame({'A' : ['a','a','b','b'],
'B' : ['1','2','1','2'],
'C' : ['2','3','1','6']})
通过遍历此数据框,我希望获得如下内容:
(从 ['B']
列开始)
[1]
[1,2]
[1,2,1]
[1,2,1,2]
(然后是列 ['C']
)
[2]
[2,3]
[2,3,1]
[2,3,1,6]
然后这些列表将在每次迭代结束时放入一个函数中,但我遇到的问题是编写一个适当的 for 循环来编写列表生成代码。
我的问题的第二个方面并不那么重要......但如果我也可以迭代地输出 ['A']
的值,那就太好了列表停止在(对于例如,当遍历列 ['C']
时,列表 [2,3]
与 ['A'] = 'b'
相关[2,3,1]
的 ['C']
列中的列表与 ['A'] = 'b'
相关.
非常感谢任何帮助。
最佳答案
df['B'],df['C']=df[['B','C']].values[::None].T.cumsum(axis=1)
df.applymap(list)
Out[1118]:
A B C
0 [a] [1] [2]
1 [a] [1, 2] [2, 3]
2 [b] [1, 2, 1] [2, 3, 1]
3 [b] [1, 2, 1, 2] [2, 3, 1, 6]
已更新
df[['B','C']]=df[['B','C']].applymap(list)
df
Out[1121]:
A B C
0 a [1] [2]
1 a [1, 2] [2, 3]
2 b [1, 2, 1] [2, 3, 1]
3 b [1, 2, 1, 2] [2, 3, 1, 6]
关于python - 系统地遍历 DF 的多列和多行,以跨多列输出不同的列表大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48392386/