提问人:HappyPy 提问时间:8/31/2013 更新时间:2/26/2023 访问量:70182
使用 Pandas 重命名数据框列中的元素
rename elements in a column of a data frame using pandas
问:
使用熊猫:
df = pd.DataFrame({'n':['d','a','b','c','c','a','d','b'], 'v':[1,2,1,2,2,1,1,1]})
如何重命名 中的元素,以便更改为 、 、 和 到 ,从而导致:df.n
a
x
b
y
c
w
d
z
n v
0 z 1
1 x 2
2 y 1
3 w 2
...
答:
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 的更新。
评论