簡體   English   中英

(Python,熊貓)-如何將所有內容保留在某個角色的左側?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM