gpt4 book ai didi

python - 删除 pd.DataFrame 中的最后一个单词

转载 作者:行者123 更新时间:2023-12-01 01:15:23 24 4
gpt4 key购买 nike

我有一个 pandas 数据框,其中有一列充满了地址。一般来说,我的格式不一致,希望使格式一致。

举个例子:

df = pd.DataFrame({'apt': [1, 2, 3], 'unit': ['f', 'g', 'a'], 'address: 
['15 E 59th St', '4 4th St', '4 83rd street']})

我目前正在按如下方式格式化我的专栏:

df['address'] = df['address'].str.title().str.replace(r"(\d+) 
(st|nd|rd|th)\b", r"\1")

从街道号码中删除“序数”。然而,有时地址以缩写“st”结尾,有时以完整单词“street”结尾,我认为简单地删除每个字符串的最后一个单词将是解决此问题的最简单方法。我怎样才能以 Pythonic 的方式做到这一点,以便我将某些内容应用于删除最后一个单词的整个列?我已经尝试过 rsplit,但它无法按照我的方式工作:

df['address'].str.title().str.replace(r"(\d+)(st|nd|rd|th)\b", 
r"\1").str.rsplit([' ', 1])[0]

编辑:当前的答案非常有帮助,但我意识到,在街道和大 Prop 有相同开头(第 1 街和第 1 大道)的少数情况下,放弃街道类型实际上是行不通的。有没有办法让街道结局一致,以便所有街道结局的所有版本都相同?

最佳答案

使用str.rsplit

df.address.str.rsplit(' ',1).str[0]
0 15 E 59th
1 4 4th
2 4 83rd
Name: address, dtype: object
df.address=df.address.str.rsplit(' ',1).str[0]

关于python - 删除 pd.DataFrame 中的最后一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54395056/

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