pandas 将数据框合并到另一个数据框,但从某行开始

nhjlsmyf  于 2022-12-16  发布在  其他
关注(0)|答案(2)|浏览(111)

我有一个大的 Dataframe ,其中有阅读数据,我想合并另一个结构相同的dataframe,但它是列的子集,行要少得多。
这个想法是,大的dataframe代表几乎所有我想要的,但我会有一组读数,可能开始在任何点(行)在较大的框架,我需要把列。
例如,如果大 Dataframe 看起来与此类似,并且具有5行:

A  B
0  1  11
1  2  12
2  3  13
3  4  14
4  5  15

较小的dataframe如下所示,行数较少,只有一列:

B
0  1000
1  2000

当我合并的时候,我希望dataframe包含第一帧的所有行数,但是我希望从我指定的行开始,将第二帧“覆盖”到dataframe上,例如从第2行开始,所以我希望新的dataframe看起来像这样:

A  B
0  1  11
1  2  12
2  3  1000
3  4  2000
4  5  15

最终结果是,新的dataframe与第一个dataframe大小相同,但列B的值已从我指定的行更新为第二个dataframe的长度,并且仅针对第二个 Dataframe 中的列。

h79rfbju

h79rfbju1#

给你:
假设df是较大的df,df1是较小的df。

...
shift = 2
df1.index = df1.index + shift
df.update(df1)

结果:

A       B
0  1    11.0
1  2    12.0
2  3  1000.0
3  4  2000.0
4  5    15.0
kwvwclae

kwvwclae2#

是的,你需要首先对齐你的索引。Pandas使用固有的数据对齐来完成大部分操作,因此你可以使用这种方法来更新你的df1,dataframe:

df2.set_axis([2, 3]).combine_first(df1)

输出:

A     B
0  1    11
1  2    12
2  3  1000
3  4  2000
4  5    15

相关问题