gpt4 book ai didi

python - Pandas - 替换列值

转载 作者:IT老高 更新时间:2023-10-28 20:50:05 25 4
gpt4 key购买 nike

我知道这个问题有很多主题,但没有一种方法对我有用,所以我发布了我的具体情况

我有一个如下所示的数据框:

data = pd.DataFrame([[1,0],[0,1],[1,0],[0,1]], columns=["sex", "split"])
data['sex'].replace(0, 'Female')
data['sex'].replace(1, 'Male')
data

我想要做的是将性别列中的所有 0 替换为“女性”,将所有 1 替换为“男性”,但是当我使用上面的代码时,数据框中的值似乎没有改变

我是否错误地使用了 replace()?还是有更好的方法来条件替换值?

最佳答案

是的,你用错了,Series.replace()默认情况下不是就地操作,它返回替换的数据框/系列,您需要将其分配回您的数据框/系列以使其生效。或者如果您需要就地执行,则需要将 inplace 关键字参数指定为 True 示例 -

data['sex'].replace(0, 'Female',inplace=True)
data['sex'].replace(1, 'Male',inplace=True)

此外,您可以通过将 list 用于 to_replace 参数以及 将上述内容组合成单个 replace 函数调用值 参数,示例 -

data['sex'].replace([0,1],['Female','Male'],inplace=True)

示例/演示 -

In [10]: data = pd.DataFrame([[1,0],[0,1],[1,0],[0,1]], columns=["sex", "split"])

In [11]: data['sex'].replace([0,1],['Female','Male'],inplace=True)

In [12]: data
Out[12]:
sex split
0 Male 0
1 Female 1
2 Male 0
3 Female 1

你也可以用字典,例子-

In [15]: data = pd.DataFrame([[1,0],[0,1],[1,0],[0,1]], columns=["sex", "split"])

In [16]: data['sex'].replace({0:'Female',1:'Male'},inplace=True)

In [17]: data
Out[17]:
sex split
0 Male 0
1 Female 1
2 Male 0
3 Female 1

关于python - Pandas - 替换列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31888871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com