向字典存储的空DataFrame追加数据报append无关键字参数错误如何解决
问题原因及解决方案
直接报错原因
你当前调用的不是pandas.DataFrame的append方法,而是Python内置列表的append方法。
从你给出的字典结构可以看到,空DataFrame被存放在了两层嵌套的列表中:
{key: [[Empty DataFrame Columns: [list of columns] Index: []]]}
你通过dict[key]取到的是外层列表对象,Python列表的append()方法仅支持传入1个待追加的元素作为位置参数,不接受任何关键字参数,你传入的ignore_index=True触发了参数规则报错。
额外注意事项
就算你正确取到了DataFrame对象,如果你使用的是pandas 2.0及以上版本,DataFrame原生的append()方法已经被官方正式移除,同样无法正常使用,官方推荐用pd.concat实现数据追加逻辑。
修复后的代码示例
import pandas as pd # 1. 先从嵌套列表中取出目标空DataFrame,可先打印type校验是否为DataFrame类型 target_df = temp_dict[product_match][0][0] # 2. 用pd.concat完成追加,注意concat不会修改原对象,需要重新赋值回字典对应位置 temp_dict[product_match][0][0] = pd.concat([target_df, regular_df], ignore_index=True)
内容的提问来源于stack exchange,提问作者Bamir
相关产品推荐
相关产品推荐

