首页 文章

从另一个数据帧引用Pandas数据帧

提问于
浏览
1

如何从另一个引用pandas数据框 .

import pandas as pd

f1 = [['a',5,7],['b',7,9],['c',9,11],['d',11,13],['e',13,15],['f',15,17]]
df1 = pd.DataFrame(data=f1,columns=[1,2,3])
f2 = [['a','c','f'],['b','d',None]]
df2 = pd.DataFrame(data=f2, columns=[1,2,3])
print(df1)
print(df2)

我希望输出是另一个列出从df1到df2的值的数据帧 . 输出应该是

[
[[5,7],[9,11],[13,15]]
[[7,9],[11,13],[]]
]

1 回答

  • 0

    让第一个 df1 成为dict

    df2.apply(lambda x : x.map(df1.set_index(1).T.to_dict('l'))).values.tolist()
    Out[147]: [[[5, 7], [9, 11], [15, 17]], [[7, 9], [11, 13], nan]]
    

    如果你想要一个数据框

    d=df2.apply(lambda x : x.map(df1.set_index(1).T.to_dict('l')))
    d
    Out[164]: 
            1         2         3
    0  [5, 7]   [9, 11]  [15, 17]
    1  [7, 9]  [11, 13]       NaN
    

    再一步将 NaN 替换为 []

    d.loc[d[3].isnull(),3] = d.loc[d[3].isnull(),3].apply(lambda x: [])
    d
    Out[184]: 
            1         2         3
    0  [5, 7]   [9, 11]  [15, 17]
    1  [7, 9]  [11, 13]        []
    

相关问题