如何使用变量作为DataFrame列名访问对应列数据
解答
这个需求完全可行,你原有代码报错的核心原因是用错了pandas列的访问语法:访问DataFrame列需要用方括号[]做索引,小括号()是调用函数/方法的语法,不能用来取列。
正确实现代码
首先构造测试用的DataFrame:
import pandas as pd # 构造测试DataFrame df = pd.DataFrame({ 'Name': ['aaa', 'bbb', 'ccc', 'ddd'] })
自定义函数逻辑:把DataFrame和列名都作为参数传入,在函数内部用传入的列名变量配合方括号索引,就能拿到对应列的数据:
def print_target_col(input_df, col_name): # 传入的col_name是字符串类型,直接放在方括号内即可索引到对应列 print(input_df[col_name]) # 调用函数,传入列名实参 print_target_col(df, 'Name')
运行后输出结果如下:
0 aaa 1 bbb 2 ccc 3 ddd Name: Name, dtype: object
补充说明:不要把DataFrame设为全局变量直接在函数内读取,把DataFrame作为参数传入函数,能大幅提升函数的复用性,也能避免全局变量被意外修改的问题。
内容的提问来源于stack exchange,提问作者DEs
相关产品推荐
相关产品推荐

