我有一个如下所示的数据集
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('},{')]
答案 0 :(得分:1)
将pd.Series.str
与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
答案 1 :(得分:1)
使用Series.str.extract
获取第一个数值:
df.data = df.data.str.extract("(\d+)")
print (df)
data
0 5177
1 2653
2 2793
答案 2 :(得分:0)
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