Python 尝试联接2个数据帧,并将某些数据作为数组存储在一个单元格中

Python 尝试联接2个数据帧,并将某些数据作为数组存储在一个单元格中,python,pandas,Python,Pandas,我有以下3个数据帧: 第一数据帧: DF1: iID data1 data2 10 blue green 11 red teal DF2: iID rH repH 10 50 60 10 60 70 11 70 50 第二数据帧: DF1: iID data1 data2 10 blue green 11 red teal DF2: iID rH repH 10 50 60 10 60 70 11 70 50 (

我有以下3个数据帧:

第一数据帧:

DF1: 

iID data1 data2

10  blue  green

11  red   teal
DF2:

iID rH repH

10  50 60 

10  60 70 

11  70 50 
第二数据帧:

DF1: 

iID data1 data2

10  blue  green

11  red   teal
DF2:

iID rH repH

10  50 60 

10  60 70 

11  70 50 
(DF2 to每个iID可以有1行或2行)

我希望我的输出DF在一个单元格中为rH和repH设置一个数组

do输出类似于:

输出DF:

iID data1 data2 rH      repH

10  blue  green [50,60] [60,70]

11  red   teal  [70]    [50]
IIUC


值得添加以下附加组件

连接,默认情况下为左连接:

df1.join(df2)
pd.concat([df1, df2], axis=1)
或concat,默认情况下为外部联接:

df1.join(df2)
pd.concat([df1, df2], axis=1)
只需添加更多叙述:

>>> df1 = pd.DataFrame({'a':range(6),
...                     'b':[5,3,6,9,2,4]}, index=list('abcdef'))
>>> df2 = pd.DataFrame({'c':range(4),
...                     'd':[10,20,30, 40]}, index=list('abhi'))
>>>
>>>
>>> df1
   a  b
a  0  5
b  1  3
c  2  6
d  3  9
e  4  2
f  5  4
>>> df2
   c   d
a  0  10
b  1  20
h  2  30
i  3  40
>>> df4 = df1.join(df2)
>>> df4
   a  b    c     d
a  0  5  0.0  10.0
b  1  3  1.0  20.0
c  2  6  NaN   NaN
d  3  9  NaN   NaN
e  4  2  NaN   NaN
f  5  4  NaN   NaN

如果数字是唯一的,是否有办法只添加到数组中?因此,如果是[50,50],is应该使用
set
df1.merge(df2.groupby('iID').agg(lambda x:set(x.tolist()).reset_index())显示[50]@JSnoob