Python pandas:合并两个不匹配的数据帧

Python pandas: Merge two not-matching dataframes

这段代码是我写的

from numpy.random import randn
from numpy.random import seed
from scipy.stats import pearsonr
import pandas as pd

df = pd.read_csv('C:/ **** /gdp-per-capita-worldbank.csv')

df=df[df['Year']==2020]

df1 = pd.read_csv('C:/*****/crude-birth-rate.csv')

df1=df1[df1['Year']==2020]

为了隐私,我放了***,但在代码中有正确的路径。现在我必须将这两个数据帧与 Pearson 相关性进行比较。 第一个数据框看起来像这样(A、B、C 等是状态:

State     GDP
A         45
B         90
C         70
D         20

第二个数据框看起来像这样(A、B、C 等是状态:

State     crude_birth_rate
A         3
B         2
Europe    30
C         1
Asia      40
K         4

所以你可以看到两个数据帧没有正确匹配

期望的结果应该是另一个像这样的数据框:

State     GDP     crude_birth_rate
A         45      3
B         90      2
C         70      1 

所以最终的数据框应该由每个州组成,并与 2020 年的 GDP 和粗出生率保持一致,其他不匹配的州或组应该被删除。

谢谢

使用pd.merge:

out = df1.merge(df2, on='State', how='inner')
print(out)

# Output
  State  GDP  crude_birth_rate
0     A   45                 3
1     B   90                 2
2     C   70                 1

按照此 link 进行解释: