好日子,有没有可能把里面的所有东西都去掉,包括方括号?提前感谢
df = pd.DataFrame({'City': ['Santiago [1]','Madrid [2]','Barcelona [2]']})
df城
0圣地亚哥1
1马德里2
2巴塞罗那2
期望输出:
城
圣地亚哥0
1马德里
巴塞罗那2
发布于 2020-05-08 01:05:34
使用split + strip
df.City=df.City.str.split('[').str[0].str.strip()
df
City
0 Santiago
1 Madrid
2 Barcelona发布于 2020-05-08 01:13:53
YOBEN_S的答案是完美的。我只是添加了一个替代方案,您不需要使用strip(),只需要使用split(),它将字符串在中间的空格拆分。
df.City=df.City.str.split().str[0]
df
City
0 Santiago
1 Madrid
2 Barcelona编辑:正如Nick评论的那样,这不适用于中间有空白的城市。如果您想使用空白分隔,下面是另一种选择
df = pd.DataFrame({'City': ['Santiago [1]','Madrid [2]','Barcelona [2]','New York [2]','India and China [10]']})
df.City=df.City.apply(lambda x : " ".join(x.split()[:-1]))
df
City
0 Santiago
1 Madrid
2 Barcelona
3 New York
4 India and China发布于 2020-05-08 01:29:42
Regex也可以在这里工作..。获取[之前的所有字符:
df['extract'] = df.City.str.extract(r'(.*(?=\[))')
City extract
0 Santiago [1] Santiago
1 Madrid [2] Madrid
2 Barcelona [2] Barcelonahttps://stackoverflow.com/questions/61670286
复制相似问题