如何在遍历DataFrame字典时添加条件判断,为指定DataFrame额外新增列
解决方法:用字典键名做条件判断才是正确姿势
嘿,你这里的问题出在条件判断的方式上!你现在写的if df==economy其实是在做DataFrame的逐元素相等比较,会返回一个全是布尔值的DataFrame,根本没法作为if的判断条件(大概率会直接报错)。
正确的思路是利用你字典里的键名来判断——因为字典的键就是你给每个DataFrame起的明确标识('economy'、'finance'、'language'),用这个字符串来判断既准确又稳健。
修正后的完整代码
dframes_dict = {'economy': economy, 'finance': finance, 'language': language} for df_name, df in dframes_dict.items(): # 先执行所有DataFrame都要做的通用操作 # 举个例子:比如清理空值、统一列名之类的 # df = df.dropna(subset=['key_column']) # 对economy表执行差异化操作 if df_name == "economy": df['adding_column_to_economy_dataframe'] = "added" # 保存处理后的文件 df.to_csv(f"df_{df_name}.csv")
为什么不推荐用df is economy?
可能你会想,用is判断对象身份行不行?在当前代码框架下可能暂时有效,但如果后续你对economy这个DataFrame做了复制操作(比如economy = economy.copy()),那循环里的df和原economy就不是同一个对象了,df is economy会返回False,导致差异化操作失效。而用键名判断就完全不受这个影响,不管DataFrame对象怎么变,只要键名是'economy'就会执行对应的操作。
总结
用字典的键名(字符串)作为判断条件,是这种场景下最可靠、最易维护的方式,既能准确区分目标DataFrame,又避免了DataFrame对象变化带来的潜在问题。
内容的提问来源于stack exchange,提问作者asd
相关产品推荐
相关产品推荐

