gpt4 book ai didi

python - 无需循环即可替换 Pandas 列中的多个值

转载 作者:行者123 更新时间:2023-11-28 20:13:56 25 4
gpt4 key购买 nike

我有 Pandas 数据框,想替换 df 的特定列上的很多值。

如何在不循环的情况下实现下面的代码?

for i in range(len(data.loc[:, 'CityID'])):
if data.loc[:, 'CityID'][i] == 1:
data.loc[:, 'CityID'][i] = 1
elif data.loc[:, 'CityID'][i] in (2, 3, 4, 21):
data.loc[:, 'CityID'][i] = 2
elif data.loc[:, 'CityID'][i] in (33, 34):
data.loc[:, 'CityID'][i] = 4
else:
data.loc[:, 'CityID'][i] = 3

最佳答案

您可以将字典与 pd.Series.map 结合使用:

d = {1: 1, 2: 2, 3: 2, 4: 2, 21: 2, 33: 4, 34: 4}

data['CityID'] = data['CityID'].map(d).fillna(3)

如果觉得字典构建很费力,可以使用解包:

d = {1: 1, **dict.fromkeys((2, 3, 4, 21), 2), **dict.fromkeys((33, 34), 4}

关于python - 无需循环即可替换 Pandas 列中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52148632/

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