python - 系统地遍历 DF 的多列和多行,以跨多列输出不同的列表大小

标签 python list pandas loops iteration

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

相关文章:

python - Pandas 合并无法提取公共(public)索引值

python - 正则表达式,用于管理诸如字符串文字之类的转义字符

python - 有条件地组合 pandas 数据框中的列

python - 从旧样式自动转换高级字符串格式化程序

python - Azure ML Studio - 容器已崩溃。你的init方法失败了吗

c++ - C++ list.erase(it, it) 是否删除某些东西?在哪里可以找到好的引用资料?

android - 如何防止添加已存在于 sencha touch 2.0 列表中的项目

python - Dataframe Apply方法返回多个元素(系列)

java - 使用 .NET Web 服务时将 ArrayOfStrings 转换为 JAVA 中的 String[]

python - 在 for 循环中构建不同的 networkx 图