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 进行解释:
这段代码是我写的
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 进行解释: