【发布时间】:2020-03-21 21:18:02
【问题描述】:
II 有一个包含 3 列(名称、代码、值)的 serie 对象,我从以下函数中获得:
def get_fuzz(df, w):
s = df['Legal_Name'].apply(lambda y: fuzz.token_set_ratio(y, w))
idx = s.idxmax()
return {'name': df['Legal_Name'].iloc[idx], 'lei': df['LEI'].iloc[idx], 'val': s.max()}
df1['Name'].apply(lambda x: get_fuzz(df, x))
意甲是这样的
output
0 {'name': 'MGR Farms LLC', 'lei': '984500486BBD...
1 {'name': 'RAVENOL NORGE AS', 'lei': '549300D2O...
2 {'name': 'VCC Live Group Zártkörűen Működő Rés...
我可以使用下面的代码将输出分配给我的数据框。
df1.assign(search=df1['Name'].apply(lambda x: get_fuzz(df, x)))
我得到的数据框是这样的
ID Name search
0 1 Marshalll {'name': 'MGR Farms LLC', 'lei': '984500486BBD...
1 2 JP Morgan {'name': 'RAVENOL NORGE AS', 'lei': '549300D2O...
问题
如何将此列拆分为 3 列?
想要的最终输出
ID Name Name_bis LEI Value
0 1 Marshalll MGR Farms LLC 984500486BBD 57
1 2 Zion ZION INVESTMENT 549300D2O 100
【问题讨论】:
标签: python pandas function dataframe dictionary