为什么重命名熊猫中的列这么慢?

时间:2020-10-08 14:03:24

标签: pandas

给定一个大数据框(在我的情况下为250M行和30列),为什么仅更改列名然后这么慢?

我正在使用df.rename(columns={'oldName':'newName'},inplace=True),因此它不应复制任何数据,但是要花费30秒以上的时间,而我原本希望以毫秒为单位(因为它只是替换一个字符串)另一个)。

我知道,那是一个巨大的表,比大多数人的计算机中有更多内存(因此,我也不会添加示例代码)要多,但这仍然不需要花费大量时间,因为它不是实际接触任何数据。为什么要花这么长时间,即为什么重命名列的工作量与数据帧的行数成比例?

1 个答案:

答案 0 :(得分:2)

我认为inplace=True不会复制您的数据。关于SO有一些讨论,说它确实复制了,然后再分配回去。另请参见this github issue

您可以使用以下方法覆盖列:

df.columns = df.columns.to_series().replace({'a':'b'})