给定一个较大的数据框(在我的情况下为250M行和30 col),为什么只更改列名然后这么慢?
我正在使用,df.rename(columns={'oldName':'newName'},inplace=True)
因此它不应复制任何数据,但要花费30秒钟以上,而我希望这大约是毫秒(因为它只是将一个字符串替换为另一个字符串)。
我知道,那是一张巨大的桌子,比大多数人的计算机中有更多内存(因此我也不会添加示例代码)要多得多,但这仍然不应该花费大量时间,因为它实际上并没有碰到任何东西。的数据。为什么要花这么长时间,即为什么重命名一列会与我的数据帧的行数成比例?
我认为inplace=True
不会复制您的数据。关于SO有一些讨论,说它确实复制了,然后再分配回去。另请参阅此github问题。
您可以使用以下方法覆盖列:
df.columns = df.columns.to_series().replace({'a':'b'})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句