Python Pandas:如何在数据框的列中拆分排序的字典

Python Pandas:如何在数据框的列中拆分排序的字典,第1张

Python Pandas:如何在数据框的列中拆分排序的字典

另一种方法是定义一个仅调用

min
dict并返回一个Series的函数,以便您可以分配给多个列(函数主体取自@Alex
Martelli的answer
):

In [17]:def func(x):    k = min(x, key=x.get)    return pd.Series([k, x[k]])df[['orgs', 'value']] = df['orgs'].apply(func)dfOut[17]:     asn  id  orgs  value0   3320   0         Deutsche Telekom AG   22881  47886   1  Equinix (Netherlands) B.V.      72  47601   2  fusion services   10243  33438   3     Highwinds Network Group    893

编辑

如果您的数据包含空dics,那么您可以测试

len

In [34]:df = pd.Dataframe({'id':[0,1,2,3,4],        'asn':[3320,47886,47601,33438,56],        'orgs':[{'Deutsche Telekom AG': 2288},     {'Joyent': 16, 'Equinix (Netherlands) B.V.': 7},     {'fusion services': 1024, 'GCE Global Maritime':16859},     {'Highwinds Network Group': 893},{}]})dfOut[34]:     asn  id   orgs0   3320   0{'Deutsche Telekom AG': 2288}1  47886   1    {'Equinix (Netherlands) B.V.': 7, 'Joyent': 16}2  47601   2  {'GCE Global Maritime': 16859, 'fusion service...3  33438   3        {'Highwinds Network Group': 893}4     56   4     {}In [36]:def func(x):    if len(x) > 0:        k = min(x, key=x.get)        return pd.Series([k, x[k]])    return pd.Series([np.NaN, np.NaN])df[['orgs', 'value']] = df['orgs'].apply(func)dfOut[36]:     asn  id  orgs  value0   3320   0         Deutsche Telekom AG   22881  47886   1  Equinix (Netherlands) B.V.      72  47601   2  fusion services   10243  33438   3     Highwinds Network Group    8934     56   4   NaN    NaN


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5617491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存