gpt4 book ai didi

python - 如何根据列表替换列值?

转载 作者:行者123 更新时间:2023-12-01 00:18:31 25 4
gpt4 key购买 nike

我有一个这样的列表:

x = ['Las Vegas', 'San Francisco, 'Dallas']

数据框看起来有点像这样:

import pandas as pd
data = [['Las Vegas (Clark County), 25], ['New York', 23],
['Dallas', 27]]
df = pd.DataFrame(data, columns = ['City', 'Value'])

我想将 DF 中的城市值“拉斯维加斯(克拉克县)”替换为“拉斯维加斯”。在我的数据框中有多个具有不同名称的城市,需要更改。我知道我可以做一个正则表达式来去掉括号后面的部分,但我想知道是否有一种更聪明、更通用的方法。

最佳答案

使用Series.str.extract使用正则表达式 OR 通过 | 加入列表的值,然后通过 Series.fillna 将不匹配的值替换为原始值:

df['City'] = df['City'].str.extract(f'({"|".join(x)})', expand=False).fillna(df['City'])
print (df)
City Value
0 Las Vegas 25
1 New York 23
2 Dallas 27

另一个想法是使用 Series.str.contains with循环,但如果数据帧很大并且list中有很多值,它应该会很慢:

for val in x:
df.loc[df['City'].str.contains(val), 'City'] = val

关于python - 如何根据列表替换列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59123629/

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