我有一些导出和计算的数据集,如下所示 Df= ID。分数。年级 123.45.A 456.60.AA 789.35.乙 345.90.O
Ds= ID。团队。平均得分 123.巨人队56.5 456.超级67.6 789. 国王 36.6 345.战士。 90
Db= ID。城市密码 123.奥尔良 88888 456.堪萨斯州 9999 789.阿拉斯加4566 345.纽约。 78667
DX= ID。角色区 123.测试员。 ABC 第456章 工程师cdv.
分析师ghf
开发者yut
需要将公共列的所有 coulmns 一起输出为“I'd”,例如: 我会.Marks.Grade.Team.Scoremean.City
我尝试过 merge() 和 join() 但它不允许超过两个数据集。使用 python 3.6 请帮忙
你应该展示一些你的代码。所以合并对我有用。只需使用
on="ID"
和 how="left"
。也许你只是用错了......谁知道呢
import pandas as pd
data_df = {
'ID': [123, 456, 789, 345],
'Marks': [45, 60, 35, 90],
'Grade': ['A', 'AA', 'B', 'O']
}
data_ds = {
'ID': [123, 456, 789, 345],
'Team': ['Giants', 'Supers', 'Kings', 'Warriors'],
'Scoremean': [56.5, 67.6, 36.6, 90]
}
data_dc = {
'ID': [123, 456, 789, 345],
'City': ['Orleans', 'Kansas', 'Alaska', 'New York'],
'Pincode': [88888, 9999, 4566, 78667]
}
data_dx = {
'ID': [123, 456],
'Role': ['Tester', 'Engineer'],
'Area': ['Abc', 'cdv']
}
df = pd.DataFrame(data_df)
ds = pd.DataFrame(data_ds)
dc = pd.DataFrame(data_dc)
dx = pd.DataFrame(data_dx)
result = pd.merge(df, pd.merge(ds, pd.merge(dc, dx, on='ID', how='left'), on='ID', how='left'), on='ID', how='left')
print(result)
output
ID Marks Grade Team Scoremean City Pincode Role Area
0 123 45 A Giants 56.5 Orleans 88888 Tester Abc
1 456 60 AA Supers 67.6 Kansas 9999 Engineer cdv
2 789 35 B Kings 36.6 Alaska 4566 NaN NaN
3 345 90 O Warriors 90.0 New York 78667 NaN NaN
如果您想更改
NaN
,您应该查看zip_longest
(填充值)。