Python 合并id上长度不同的两个数据帧,并用数据填充空值

Python 合并id上长度不同的两个数据帧,并用数据填充空值,python,pandas,dataframe,Python,Pandas,Dataframe,编辑 我不再需要这样做了(smh),但我会继续发帖,以防别人给我添麻烦 所以,我有两个数据帧,一个有1000行,第二个有129行。如你所见,我有身份证的副本。我需要将它们合并在一起,来自第二个数据帧的数据将相应地复制到第一个数据帧的ID df1 id genome 0 665639 ATGTTTG 1 665639 ATGTTTG 2 665639 ATGTTTG 3 665639 ATGTTTG 4 665639 ATGTTTG

编辑

我不再需要这样做了(smh),但我会继续发帖,以防别人给我添麻烦

所以,我有两个数据帧,一个有1000行,第二个有129行。如你所见,我有身份证的副本。我需要将它们合并在一起,来自第二个数据帧的数据将相应地复制到第一个数据帧的ID

df1

    id         genome
0    665639  ATGTTTG
1    665639  ATGTTTG
2    665639  ATGTTTG
3    665639  ATGTTTG
4    665639  ATGTTTG
995  702090  ATGTTTG
996  702092  ATGTTTG
997  702094  ATGTTTG
998  702098  ATGTTTG
999  702100  ATGTTTG
df2

id基因组列表存在
0 665639 ATGTTTG[C,652,T],[A,1860,-]1
1 679299 ATGTTTG[-,447,A]]1
2 661921 ATGTTTG[-,447,A],[C,548,T],[C,2626,T]]1
3 673294 ATGTTTG[[A,850,G],[A,2618,C]]1
4 675730 ATGTTTG[-,447,A],[A,2813,T]]1
124 683468 ATGTTTG[G,37,T],[A,1069,-]1
125 701722 ATGTTTG[G,78,A],-,447,A],[A,1023,-]]1
126 702033 ATGTTTG[-,447,A],[C,3049,T]]1
127 702050 ATGTTTG[-,447,A],[A,1034,T]]1
128 702100 ATGTTTG NaN 1
合并后,我可以得到这样的东西


id基因组列表存在
0 665639 ATGTTTG[C,652,T],[A,1860,-]1
1665639 ATGTTTG[C,652,T],[A,1860,-]1
2 665639 ATGTTTG[C,652,T],[A,1860,-]1
3 665639 ATGTTTG[C,652,T],[A,1860,-]1
4 665639 ATGTTTG[C,652,T],[A,1860,-]1
.... ....... ....... ............. ......... ......... ..........
................ ..其余数据。。。。。。。。

您是否尝试过
pd.merge
?这就应该做到:

df1.merge(df2, on='id')

您是否尝试过pd.merge?这就应该做到:

df1.merge(df2, on='id')

这听起来像是pd.merge\u ordered的一个例子。它支持通过
fill\u方法
直接填充缺失值<如果索引已按适当顺序排列,则code>ffill应复制条目。否则,它会尝试写入连续块(可能会覆盖顺序不匹配的索引)

i、 e

pd.merge\u ordered(df1,df2,on='id',fill\u method='ffill',how=“inner”)

这听起来像是
pd.merge\u ordered的一个例子。它支持通过
fill\u方法
直接填充缺失值<如果索引已按适当顺序排列,则code>ffill
应复制条目。否则,它会尝试写入连续块(可能会覆盖顺序不匹配的索引)

i、 e

pd.merge\u ordered(df1,df2,on='id',fill\u method='ffill',how=“inner”)
使用
pd.merge(df1,df2,how='left',on='id')
使用
pd.merge(df1,df2,how='left',on='id')