无法使用替换更新数据框标题

时间:2020-03-18 01:46:38

标签: pandas replace

我想通过使用select date_part(day, last_day(datecol)) 替换错误data.columns.str.replace(' ', '_', inplace=True)来替换数据框标题中的符号

我也尝试在一行TypeError: replace() got an unexpected keyword argument 'inplace'中替换多个符号我收到错误data.columns.str.replace([' ', ' - '], '_')

这个有效,TypeError: unhashable type: 'list',但理想情况下,我想一次替换标题中的多个符号。

2 个答案:

答案 0 :(得分:1)

您需要重新分配,因为inplace不是参数,并且可以将要替换的符号与|连接起来,例如:

df.columns = df.columns.str.replace(' |-', '_')

答案 1 :(得分:0)

不确定这是否是最好的方法,但是如果要对字符串使用replace并就地进行更改,则可以为df.rename()方法生成一个字典参数:

# Dummy dataframe
data = {'A heading': [1,4,7,9], 'B - Heading': [2, 4, 3, 1]}
df = pd.DataFrame(data)

# Create a list of the new columns using list comprehension and .replace()
new_cols = [h.replace(' - ','_').replace(' ', '_') for h in df.columns]

# Pack into a dictionary with old columns as keys and new columns as values
replace_dict = dict(zip(df.columns, new_cols))
replace_dict

# Use the .rename() method to rename in place
df.rename(columns=replace_dict, inplace=True)