我正在尝试在熊猫中合并多个数据框,并使列标签在结果数据框中保持笔直。这是我的测试用例:
import pandas as pd
df1 = pd.DataFrame(data = [[1,1],[3,1],[5,1]], columns = ['key','val'])
df2 = pd.DataFrame(data = [[1,2],[3,2],[7,2]], columns = ['key','val'])
df3 = pd.DataFrame(data = [[1,3],[2,3],[4,3]], columns = ['key','val'])
df = pd.merge(pd.merge(df1,df2,on='key', suffixes=['_1','_2']),df3,on='key',suffixes=[None,'_3'])
Run Code Online (Sandbox Code Playgroud)
我得到这个:
df =
key val_1 val_2 val
0 1 1 2 3
Run Code Online (Sandbox Code Playgroud)
我想看看这个:
df =
key val_1 val_2 val_3
0 1 1 2 3
Run Code Online (Sandbox Code Playgroud)
我指定的最后一对后缀是:[None,'_3'],逻辑是该对['_1','_2']已为上一次合并创建了唯一的列名。
仅当合并的数据框具有两个具有相同名称的列时才需要后缀。合并df3时,数据框的列名称为val_1和val_2,因此没有重叠。您可以这样将val重命名为val_3来处理
df = df1.merge(df2, on = 'key', suffixes=['_1','_2']).merge(df3, on = 'key').rename(columns = {'val': 'val_3'})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6348 次 |
| 最近记录: |