【发布时间】:2018-05-10 00:56:21
【问题描述】:
我有一个看起来像这样的 df:
name surname device
anna smith Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E304
petr lebowski Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:48.0) Gecko/20100101 Firefox/48.0
eveline jones Mozilla/5.0 (Linux; Android 6.0.1; SAMSUNG SM-G903F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/5.4 Chrome/51.0.2704.106 Mobile Safari/537.36
我的目标是将这些行拆分为多列,并仅选择某些值来创建新列,以便新的数据框如下所示:
name surname device column1 column2 column3
anna smith as in df iPhone CPU iPhone OS 10_3_1 Mac OS X
petr lebowski as in df Macintosh Intel Mac OS X 10.6 rv:48.0
eveline jones as in df Linux Android 6.0.1 SAMSUNG SM-G903F Build/MMB29K
所以基本上我只想从这些行中选择某些值:只需要括号中的值,用 ';' 分隔。
我知道如何逐个符号地拆分它:
def split_it(string):
return re.findall(r"[\w']+|[.,!?;]", string)
以及如何创建具有拆分行的新列:
df['device'].str[1:-1].str.split(',', expand=True)
但是不知道如何只选择某些值并使用它们创建列...
【问题讨论】:
-
你的例子不太行;第一行括号之间只有一个
;。
标签: python regex python-3.x pandas dataframe