我希望遍历此数据框以增加列 ['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]
