循环遍历 pandas 列名以创建列表

Posted

技术标签:

【中文标题】循环遍历 pandas 列名以创建列表【英文标题】:Loop over pandas column names to create lists 【发布时间】:2021-03-06 11:10:13 【问题描述】:

这是一个简单的过程。我想从数据框中的每一列创建列表并尝试循环遍历它。

for columnName in grouped.iteritems(): 
    columnName = grouped[columnName]

它给了我一个TypeError: '('africa', year(注意非洲是列之一,年份是索引)。有人知道这里发生了什么吗?

这是我的数据框

continent   africa  antarctica     asia  ...  north america  oceania  south america
year                                     ...                                       
2009           NaN         NaN      1.0  ...            NaN      NaN            NaN
2010          94.0         1.0    306.0  ...           72.0     12.0           21.0
2011          26.0         NaN    171.0  ...           21.0      2.0            4.0
2012         975.0        28.0   5318.0  ...          480.0     58.0          140.0
2013        1627.0        30.0   7363.0  ...          725.0    124.0          335.0
2014        3476.0        41.0   7857.0  ...         1031.0    202.0          520.0
2015        2999.0        43.0  12048.0  ...         1374.0    256.0          668.0
2016        2546.0        55.0  11429.0  ...         1798.0    325.0         3021.0
2017        7486.0       155.0  18467.0  ...         2696.0    640.0         2274.0
2018       10903.0       340.0  22979.0  ...         2921.0    723.0         1702.0
2019        7367.0       194.0  15928.0  ...         1971.0    457.0          993.0

[11 rows x 7 columns]

所以我希望得到一个列表,每列包含 11 个元素。

【问题讨论】:

你能发布预期的结果吗? 完成。如果不清楚,请告诉我 【参考方案1】:

iteritems 返回类似于 python 的 dict.items() 的 column_name、column_data 对。如果你想迭代列名,你可以像这样迭代分组:

result = 
for column_name in grouped:
    result[column_name] = [*grouped[column_name]]

这将为您留下一个纯 Python 字典,其中包含 result 中的纯 Python 列表。请注意,如果您只执行result[column_name] = grouped[column_name],您将获得 pandas Series 而不是列表。

【讨论】:

字典也可以,也感谢关于系列与列表的提示。

以上是关于循环遍历 pandas 列名以创建列表的主要内容,如果未能解决你的问题,请参考以下文章

循环遍历列表以从 SQL 查询创建多个数据帧

循环遍历 pandas 数据框列中的列表元素以在新列中返回列表

如何避免循环遍历 pandas 中的分类变量以查看/操作数据帧切片/子集

Python / Pandas:循环遍历数字列表

通过遍历列表为 pandas 列赋值

Python 3 函数循环遍历 pandas 数据框以更改模式