向 pandas 框架添加列时出现性能警告

Performance warning when adding columns to pandas frame

提问人:E. M. 提问时间:3/28/2023 更新时间:3/28/2023 访问量:201

问:

在将多列插入 pandas 数据框后,我遇到以下警告:

PerformanceWarning:DataFrame 高度碎片化。这通常是多次调用的结果,性能较差。请考虑改用 pd.concat(axis=1) 一次联接所有列。若要获取碎片删除的帧,请使用frame.insertnewframe = frame.copy()

我有许多不同的结果,并将它们传递给数据框,如下所示,例如:

df_result ["Albedo_Surface_Irradiance_0 [W/m²]"] = AlbedoSurf_irradiance[0]

df_result ["Albedo_Surface_Irradiance_1 [W/m²]"] = AlbedoSurf_irradiance[1]

...

警告包含一次使用和加入所有列的建议,我不知道该怎么做。pd.concat(axis=1)

我尝试遵循终端中显示的建议,但没有奏效。我还尝试了另一个类似的问题提供的解决方案

df_result [["Albedo_Surface_Irradiance_0 [W/m²]","Albedo_Surface_Irradiance_1 [W/m²]", ... ]] = (AlbedoSurf_irradiance[0], AlbedoSurf_irradiance[1])

不幸的是,这也没有用。

Python Pandas 数据帧 警告

评论

0赞 chakuRak 3/29/2023
尝试时看到的具体错误是什么?此问题的正确语法可能如下所示:或 。pd.concatpd.concat([df_result, AlbedoSurf_irradiance], axis=1)pd.concat([df_result, AlbedoSurf_irradiance.transpose()], axis=1)
0赞 Community 3/29/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。
0赞 E. M. 3/30/2023
我找不到任何好的 pd.concat 示例来将列添加到现有数据框中,就像我想做的那样,将每一列分配给某个数组。这些示例始终创建一个新的数据帧,将列添加到较旧的数据帧中。
0赞 topsail 3/30/2023
向“新”数据帧添加列与向“现有”数据帧添加列之间没有技术区别。在这两种情况下 - 您都在添加列。你的问题仍然不清楚。

答: 暂无答案