在Pandas中基于依赖列和分隔符解析值

时间:2017-08-01 02:46:40

标签: python python-2.7 pandas parsing dataframe

在下面的示例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')

1 个答案:

答案 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