替换熊猫列中的值

时间:2019-12-04 23:31:32

标签: python pandas dataframe

我想在下面的数据框中将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

,它表明值没有改变。正确的做法是什么?

1 个答案:

答案 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]