为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

aluckdog 2021-06-21 21:01:49
我有以下 3 个数据框:第一个数据框:DF1: iID data1 data210  blue  green11  red   teal第二个数据框:DF2:iID rH repH10  50 60 10  60 70 11  70 50 (DF2 每个 iID 可以有 1 行或 2 行)我希望我的输出 DF 在一个单元格中有一个数组,用于 rH 和 repH输出将类似于:输出DF:iID data1 data2 rH      repH10  blue  green [50,60] [60,70]11  red   teal  [70]    [50]
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

国际大学联盟


df1.merge(df2.groupby('iID').agg(lambda x : x.tolist()).reset_index())

Out[144]: 

   iID data1  data2        rH      repH

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

1   11   red   teal      [70]      [50]


查看完整回答
反对 回复 2021-06-29
?
慕森卡

TA贡献1806条经验 获得超8个赞

值得添加以下附加组件..


join,默认情况下是左连接:


df1.join(df2)

或者 concat,默认是外连接:


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


查看完整回答
反对 回复 2021-06-29
  • 2 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号