[英]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.str
与apply
一起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.