我想在下面的数据框中将Weekday
重命名为day_of_week
Weekday Value
2 10
2 5
8 50
7 20
4 11
使用
df = df.rename(columns = {'Weekday' : 'day_of_week'})
然后我注意到df
已从pandas.core.series.Series
转换为DataFrame
,这不是我的意思,因为我想将所有8
替换为{{ 1}}在1
的列中,我不确定如何使用DataFrame
。
我的问题是:
1)重命名pandas数据框中的列有哪些不同的方式以及区别(关于数据类型转换)?
2)解决我的问题的最佳方法是什么?如何解决?
谢谢
更新:
抱歉,问题在于重命名后将series
列中的8
值替换为1
。
新问题: 我用
day_of_week
,它表明值没有改变。正确的做法是什么?
答案 0 :(得分:0)
始终检查数据框的类型和索引。应用于数据框的重命名方法总是返回一个数据框。
df.index
type(df)
您可以使用:
#df=df.reset_index() # if Weekday is the index
df['Weekday']=df['Weekday'].mask(df['Weekday']>7,df['Weekday']%7)
df=df.rename(columns = {'Weekday' : 'day_of_week'})
print(df)
输出
day_of_week Value
0 2 10
1 2 5
2 1 50
3 7 20
4 4 11
Dataframe.rename
是我们用来重命名列的方法,尽管您可以使用:
df.columns=[the names of your columns]