有没有更好的方法来处理pandas数据框中的列名?

时间:2019-10-23 21:29:16

标签: python pandas

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

这是我正在使用的缓慢方法:

# Create a sample dataframe
df = pd.DataFrame.from_records([
    {'Name':'Jay','Favorite Color (BLAH)':'Green'},
    {'Name':'Shay','Favorite Color (BLAH)':'Blue'},
    {'Name':'Ray','Favorite Color (BLAH)':'Yellow'},
])

# Current columns are: ['Name', 'Favorite Color (BLAH)']

# ------

# build two lambdas to clean the column names
f_clean = lambda x: x.split('(')[0] if ' (' in x else x
f_join = lambda x: '_'.join(x.split())
df.columns = df.columns.map(f_clean, f_join).map(f_join).str.lower()

# Columns are now: ['name', 'favorite_color']

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

1 个答案:

答案 0 :(得分:1)

您可以定义一个b[range(len(b)), np.argmin(a, axis=1)] 函数,并使用列表推导将其应用于所有列。

clean

很清楚发生了什么,但并不过分冗长。