Pandas 将变量名传递给列名

新手上路,请多包涵

我有一个包含 13 个不同列名的数据框,我将这些标题分成两个列表。我现在想对每个列表执行不同的操作。

是否可以将列名作为变量传递给熊猫?我现在的代码可以很好地循环遍历列表,但是我在尝试将列名传递给函数时遇到了问题

代码

CONT = ['age','fnlwgt','capital-gain','capital-loss']
#loops through columns
for column_name, column in df.transpose().iterrows():
    if column_name in CONT:
        X = column_name
        print(df.X.count())
    else:
        print('')

原文由 JJSmith 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 824
2 个回答

我想你可以使用 subset 创建自 list CONT

 print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count()
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3

也许更好,因为 listdictionary ,它是由 to_dict 创建的:

 d = df[CONT].count().to_dict()
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3

原文由 jezrael 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试:

 for column_name, column in df.transpose().iterrows():
    if column_name in CONT:
        print(df[column_name].count())
    else:
        print('')

编辑:

更准确地回答您的问题:您可以使用变量以两种方式选择 cols: df[list_of_columns] 将返回一个 DataFrame,其中包含 list_of_columns 中的 cols 子集。 df[column_name] 将返回系列 column_name

原文由 aiguofer 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题