循环遍历 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 列名以创建列表的主要内容,如果未能解决你的问题,请参考以下文章
循环遍历 pandas 数据框列中的列表元素以在新列中返回列表