gpt4 book ai didi

python - 如何仅在出现特定单词时拆分列中的字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 01:59:33 25 4
gpt4 key购买 nike

如果它出现在列的一行中,我只想保留单词“in”之后的部分。问题是如果这个词没有出现在行中,它的原始值将被 NaN 替换。如果没有出现“in”这个词,我想保留原始值。

我尝试在“城市”列上使用 str.split 拆分字符串:

    Rotterdam
Den Haag
Postcode 2288 in Rijswijk
Postcode 2511 in Den Haag Centrum
Delft
df.city.astype(str).str.split('in').str[1]

实际结果:

    NaN
NaN
Rijswijk
Den Haag Centrum
NaN

预期结果:

    Rotterdam
Den Haag
Rijswijk
Den Haag Centrum
Delft

最佳答案

一种可能的解决方案是用原始列替换缺失值:

df['new'] = df.city.astype(str).str.split(' in ').str[1].fillna(df.city)
print (df)
city new
0 Rotterdam Rotterdam
1 Den Haag Den Haag
2 Postcode 2288 in Rijswijk Rijswijk
3 Postcode 2511 in Den Haag Centrum Den Haag Centrum
4 Delft Delft

或者通过 -1 选择列表中的最后一个值 - 如果数据中只有一个 in ,解决方案工作相同:

df.city.astype(str).str.split(' in ').str[-1]

@Jon Clements 的另一个解决方案是使用 Series.str.rpartition :

df.city.str.rpartition(' in ')[2]

关于python - 如何仅在出现特定单词时拆分列中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56005506/

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