Python 有没有更好的方法来操作数据框中的列名?

Python 有没有更好的方法来操作数据框中的列名?,python,pandas,Python,Pandas,我正在处理一个大型数据帧,需要一种动态重命名列名的方法 下面是我正在使用的一种缓慢的方法: 有更好的方法解决这个问题吗?您可以定义一个clean函数,并使用列表理解应用于所有列 def clean(name): name = name.split('(')[0] if ' (' in name else name name = '_'.join(name.split()) return name df.columns = [clean(col) for col in df.col

我正在处理一个大型数据帧,需要一种动态重命名列名的方法

下面是我正在使用的一种缓慢的方法:


有更好的方法解决这个问题吗?

您可以定义一个
clean
函数,并使用列表理解应用于所有列

def clean(name):

  name = name.split('(')[0] if ' (' in name else name
  name = '_'.join(name.split())
  return name

df.columns = [clean(col) for col in df.columns]

很清楚发生了什么,也不太详细。

使用
df.reindex
怎么样?或者只是重新命名列?我不熟悉重新索引。如果有大量的df,重命名会很困难。所谓大量,你是指大量的列数,还是仅仅有大量的行?我想只调整
df.columns
索引对象会非常快。
df.rename(name\u map,inplace=True)
会更快吗?您必须将
name\u map
构造为一个dict,由当前col name键入,并由新col name赋值
def clean(name):

  name = name.split('(')[0] if ' (' in name else name
  name = '_'.join(name.split())
  return name

df.columns = [clean(col) for col in df.columns]