使用 Pandas 重命名数据框列中的元素

rename elements in a column of a data frame using pandas

提问人:HappyPy 提问时间:8/31/2013 更新时间:2/26/2023 访问量:70182

问:

使用熊猫:

df = pd.DataFrame({'n':['d','a','b','c','c','a','d','b'], 'v':[1,2,1,2,2,1,1,1]})

如何重命名 中的元素,以便更改为 、 、 和 到 ,从而导致:df.naxbycwdz

   n  v
0  z  1
1  x  2
2  y  1
3  w  2
  ...
Python Pandas DataFrame 重命名

评论


答:

54赞 Andy Hayden 8/31/2013 #1

可以将替换值的字典传递到 Series replace 方法中:

In [11]: df['n'].replace({'a': 'x', 'b': 'y', 'c': 'w', 'd': 'z'})
Out[11]: 
0    z
1    x
2    y
3    w
4    w
5    x
6    z
7    y
Name: n, dtype: object

In [12]: df['n'] = df['n'].replace({'a': 'x', 'b': 'y', 'c': 'w', 'd': 'z'})

评论

0赞 Baobab 4/27/2022
您好,我该怎么做才能做到这一点,但要创建一个 df 列而不是列表?
2赞 mpriya 9/2/2021 #2

您也可以使用以下方法:

df['n'].replace(['a', 'b', 'c', 'd'], ['x', 'y', 'w', 'z'])

这将用 x 替换所有 a,用 y 替换 b,用 w 替换 c,用 z 替换 d。注意:如果传递两个列表,则它们的长度必须相同。

0赞 saurabh ghosh 7/1/2022 #3

从上面略微修改:

movies['price'].replace({“$”:“low”,“$$”:“moderate”,“$$$”:“high”,“$$$$”:“very high”},inplace=True)

“Use inplace =True”,否则不会更新数据帧。

评论

0赞 rachwa 7/3/2022
此解决方案不能回答该问题。此外,@Andy Hayden 的回答还提供了 DataFrame 的更新。