将多个数据集合并到一个数据框中,保留一列作为 pandas 中的主索引

问题描述 投票:0回答:1

我有一些导出和计算的数据集,如下所示 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.

  1. 分析师ghf

  2. 开发者yut

需要将公共列的所有 coulmns 一起输出为“I'd”,例如: 我会.Marks.Grade.Team.Scoremean.City

我尝试过 merge() 和 join() 但它不允许超过两个数据集。使用 python 3.6 请帮忙

python pandas dataframe merge cal
1个回答
0
投票

你应该展示一些你的代码。所以合并对我有用。只需使用

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
(填充值)。

© www.soinside.com 2019 - 2024. All rights reserved.