Pandas空DataFrame拼接临时DataFrame后仍为空的解决方案咨询
循环拼接DataFrame后仍为空的解决方法
问题根源
pd.concat() 和已弃用的append()方法都是返回新的DataFrame对象,不会直接修改原变量。你之前的代码仅调用了拼接方法,但未将结果重新赋值给df_data,导致原空DataFrame始终未被更新。
解决方案
方案1:每次拼接后重新赋值
直接将拼接结果覆盖原变量,同时建议添加ignore_index=True避免索引重复问题:
import pandas as pd df_data = pd.DataFrame() for data in list: df_temporary_data = method_which_provides_df_with_data() df_data = pd.concat([df_data, df_temporary_data], ignore_index=True)
方案2:先收集所有临时DataFrame再一次性拼接(更高效)
循环内频繁拼接会重复创建对象,效率较低。推荐先将所有临时DataFrame存入列表,最后一次性完成拼接:
import pandas as pd temp_dfs = [] for data in list: df_temporary_data = method_which_provides_df_with_data() temp_dfs.append(df_temporary_data) df_data = pd.concat(temp_dfs, ignore_index=True)
注意事项
pandas 2.0及以上版本已弃用DataFrame.append()方法,官方明确推荐使用pd.concat()作为替代方案,因此优先选择上述concat相关的实现方式。
内容的提问来源于stack exchange,提问作者usermate17921900
相关产品推荐
相关产品推荐

