繁体   English   中英

从字符串中提取 substring 并应用于整个 dataframe 列

[英]Extract substring from string and apply to entire dataframe column

我有一个 pandas dataframe 在列中有一堆网址,例如

URL
www.myurl.com/python/us/learnpython
www.myurl.com/python/en/learnpython
www.myurl.com/python/fr/learnpython
.........

我想提取国家代码并将它们添加到一个名为 Country 的新列中,其中包含我们、en、fr 等。 我可以在单个字符串上执行此操作,例如

url = 'www.myurl.com/python/us/learnpython'
country = url.split("python/")
country = country[1]
country = country.split("/")
country = country[0]

我如何 go 将其应用于整个列,在此过程中创建一个包含所需数据的新列? 我用 for 循环尝试了这种变化,但没有成功。

假设 URL 总是有这种格式,我们可以在这里使用str.extract

df["cc_code"] = df["URL"].str.extract(r'/([a-z]{2})/')

如果 contry 代码总是出现在第二个斜杠/之后,最好将字符串传递值拆分为n即 maxsplit 参数并只取您感兴趣的值。当然,您可以将值分配给新列:

>>> df['URL'].str.split('/',n=2).str[-1].str.split('/', n=1).str[0]

0    us
1    en
2    fr
Name: URL, dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM