Python中能否用字符串变量替换指令片段?如何提取指定DataFrame列数据?
问题解答
问题1:Python中能否用字符串变量替换指令的部分内容?
可以。Python提供多种实用方式实现这类需求:
- 使用
getattr()函数:若要访问对象的属性,可通过字符串变量指定属性名,示例:getattr(obj, attr_str),其中attr_str是存储属性名的字符串变量。 - 使用字典/序列索引:如果是访问字典的键或DataFrame的列,直接用
target[key_str]即可,key_str为字符串变量。 - 动态代码执行(谨慎使用):通过
eval()可执行拼接后的字符串代码,但该方式存在安全风险,仅适用于完全可信的输入场景。
问题2:展示show_list数组对应数据的简便实现方法
你的代码无法运行的核心问题是:df.item是尝试访问DataFrame的内置item属性,而非变量item对应的列。同时代码里import panda as pd存在拼写错误,应为pandas。以下是两种简便的实现方式:
方式1:修正循环逻辑
通过方括号直接索引列名,代码如下:
import pandas as pd show_list=['Apple', 'Orange'] data = { "Apple": [1,2,3], "Banana": [4,5,6], "Orange": [7,8,9] } df=pd.DataFrame(data) for item in show_list: print(df[item])
方式2:直接筛选列并输出
无需循环,Pandas支持直接传入列名列表批量筛选数据,代码更简洁:
import pandas as pd show_list=['Apple', 'Orange'] data = { "Apple": [1,2,3], "Banana": [4,5,6], "Orange": [7,8,9] } df=pd.DataFrame(data) # 一次性输出所有指定列的数据 print(df[show_list]) # 若需逐列单独打印,可简化为: for col in df[show_list]: print(df[col])
内容的提问来源于stack exchange,提问作者Gordon
相关产品推荐
相关产品推荐

