繁体   English   中英

从字符串中提取元素作为列Pandas

[英]Extract elements from strings as column Pandas

我有一个数据集,如下所示

clean.list_raw_id.head(3)
0    {5177, 5178}
1    {2653, 2655}
2          {2793}

我想添加一个值为5177、2653和2793的列

我如何在python中做到这一点

我正在尝试在列上使用apply,但无法正常工作

我能够使用以下代码提取元素

[e.strip('{}') for e in clean.list_raw_id[1].split('},{')]

pd.Series.strapply一起apply 给定df

          data
0  {5177,5178}
1  {2653,2655}
2       {2793}

df.data = df.data.str.findall("\d+").apply(lambda x:x[0])
print(df)
   data
0  5177
1  2653
2  2793

使用Series.str.extract获得第一个数值:

df.data = df.data.str.extract("(\d+)")
print (df)
   data
0  5177
1  2653
2  2793
df = pd.DataFrame(data={'vals': [{5177, 5178}, {2653, 2655}, {2793}]})

df['new_col'] = df['vals'].apply(lambda x: list(x)[0])

回报

           vals  new_col
0  {5177, 5178}     5177
1  {2653, 2655}     2653
2        {2793}     2793

暂无
暂无

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

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