在下面的示例Pandas数据框中,Col2
包含Col1
中参数的值。例如,c
的值在第1行中为2,在第2行中为7。是否可以从Pandas中的此数据框中提取c
的值?
pd.DataFrame({'col1': ['a:b:c:d', 'a:b:x:y:c:d'],
'col2': ['0:1:2:3', '3:4:5:6:7:8']})
预期输出:
pd.Series([2,7], name='c')
答案 0 :(得分:1)
你可以这样做:
def f(x):
p = dict(zip(x['col1'].split(":"),x['col2'].split(":")))
return p['c']
df.apply(f,axis=1).astype(int).rename('c')
或者如果你想要lambda:
df.apply(lambda x: dict(zip(x['col1'].split(":"),x['col2'].split(":")))['c'],axis=1).astype(int).rename('c')
输出:
0 2
1 7
Name: c, dtype: int32