[英](Python, Pandas) - How do I get everything to the left of a certain character?
我有一个market_area
列,我想通过仅将字符串的一部分保留在连字符的左侧来进行缩写。
例如,我的数据是这样的:
import pandas as pd
tmp = pd.DataFrame({'market_area': ['San Francisco-Oakland-San Jose',
None,
'Dallas-Fort Worth',
'Los Angeles-Riverside-Orange County'],
'val': [1,2,3,4]})
我想要的输出将是:
['San Francisco', None, 'Dallas', 'Los Angeles']
我可以根据连字符进行拆分:
tmp['market_area'].str.split('-')
但是,如何仅提取连字符左侧的部分?
您可以使用.str[0]
提取拆分列表中的第一个元素:
tmp.market_area.str.split('-').str[0]
Out[3]:
0 San Francisco
1 None
2 Dallas
3 Los Angeles
Name: market_area, dtype: object
或对正则表达式^([^-]*).*
使用str.extract
方法,该方法将捕获模式直到第一个-
:
tmp.market_area.str.extract('^([^-]*).*', expand=False)
Out[5]:
0 San Francisco
1 NaN
2 Dallas
3 Los Angeles
Name: market_area, dtype: object
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.