[英](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.