gpt4 book ai didi

python - 比较两个不同大小的 Pandas 数据框

转载 作者:太空狗 更新时间:2023-10-30 01:26:34 24 4
gpt4 key购买 nike

我有一个具有这种结构的 Pandas 数据框:

df1:
A B
0 0 12
1 0 15
2 0 17
3 0 18
4 1 45
5 1 78
6 1 96
7 1 32
8 2 45
9 2 78
10 2 44
11 2 10

还有第二个,像这样小一些:

df2
G H
0 0 15
1 1 45
2 2 31

我想按照以下规则向我的第一个数据帧添加一列:column df1.C = df2.H when df1.A == df2.G

我设法用 for 循环来做到这一点,但是数据库很大而且代码运行速度非常慢,所以我正在寻找 Pandas 方式或 numpy 来做到这一点。

非常感谢,

鲍里斯

最佳答案

如果您只想匹配两个数据框中的相互行:

import pandas as pd

df1 = pd.DataFrame({'Name':['Sara'],'Special ability':['Walk on water']})
df1
Name Special ability
0 Sara Walk on water

df2 = pd.DataFrame({'Name':['Sara', 'Gustaf', 'Patrik'],'Age':[4,12,11]})
df2
Name Age
0 Sara 4
1 Gustaf 12
2 Patrik 11

df = df2.merge(o, left_on='Name', right_on='Name', how='left')
df
Name Age Special ability
0 Sara 4 NaN
1 Gustaf 12 Walk on water
2 Patrik 11 NaN

这也可以用多个匹配参数来完成: (在这个例子中,来自 df1 的 Patrik 在 df2 中不存在,因为他们有不同的年龄,因此不会合并)

df1 = pd.DataFrame({'Name':['Sara','Patrik'],'Special ability':['Walk on water','FireBalls'],'Age':[12,83]})

df1
Name Special ability Age
0 Sara Walk on water 12
1 Patrik FireBalls 83

df2 = pd.DataFrame({'Name':['Sara', 'Gustaf', 'Patrik'],'Age':[4,12,11]})
df2
Name Age
0 Sara 4
1 Gustaf 12
2 Patrik 11

df = df2.merge(df1,left_on=['Name','Age'],right_on=['Name','Age'],how='left')
df
Name Age Special ability
0 Sara 12 Walk on water
1 Gustaf 12 NaN
2 Patrik 11 NaN

关于python - 比较两个不同大小的 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com