【发布时间】:2021-04-03 06:20:27
【问题描述】:
import pandas as pd
可重复设置
我有两个数据框:
df=\
pd.DataFrame.from_dict({'A':['xy','yx','zy','zz'],
'B':[[1, 3],[4, 3, 5],[3],[2, 6]]})
df2=\
pd.DataFrame.from_dict({'B':[1,3,4,5,6],
'C':['pq','rs','pr','qs','sp']})
df 看起来像:
A B
0 xy [1, 3]
1 yx [4, 3, 5]
2 zy [3]
3 zz [2, 6]
df2 看起来像:
B C
0 1 pq
1 3 rs
2 4 pr
3 5 qs
4 6 sp
目标
我想将这两者结合起来形成res:
res=\
pd.DataFrame.from_dict({'A':['xy','yx','zy','zz'],
'C':['pq','pr','rs','sp']})
即
A C
0 xy pq
1 yx pr
2 zy rs
3 zz sp
df 中带有xy 的行具有 lsit [1,3]。在df2 的列B 中有一行值为1。 C 列在该行中具有值 pq,因此我将 xy 与 pq 组合在一起。接下来的两行也一样。最后一行:df2 中的B 列中没有 2 的值,所以我选择值 6(df 中的最后一行有列表[2,6])。
问题
如何在不遍历数据框的情况下实现这一点?
Spanish SO 中的一个非常相似的帖子,启发了这篇帖子。
【问题讨论】:
标签: python pandas dataframe merge