如何将值从另一个数据框映射到另一个数据框的标头

时间:2020-11-05 11:47:02

标签: python pandas dataframe

我有2个数据框:

df1 = pd.DataFrame({'A':[1,2,3,4],
                    'B':[5,6,7,8],
                    'D':[9,10,11,12]})

df2 = pd.DataFrame({'type':['A', 'B', 'C', 'D', 'E'],
                    'color':['yellow', 'green', 'red', 'pink', 'black'],
                    'size':['S', 'M', 'L', 'S', 'M']})

我想将信息从df2映射到df1的标题,结果应如下所示:

enter image description here

我该怎么做?非常感谢:)

1 个答案:

答案 0 :(得分:4)

renameDataFrame.agg的合计值一起使用:

df1 = pd.DataFrame({'A1':[1,2,3,4],
                    'B':[5,6,7,8],
                    'D':[9,10,11,12]})


s = df2.set_index('type', drop=False).agg(','.join, axis=1)
df1 = df1.rename(columns=s)
print (df1)
   A1  B,green,M  D,pink,S
0   1          5         9
1   2          6        10
2   3          7        11
3   4          8        12

对于(),需要进行更多处理:

s = df2.set_index('type').agg(','.join, axis=1).add(')').radd('(')
s = s.index +' ' + s
df1 = df1.rename(columns=s)
print (df1)
   A (yellow,S)  B (green,M)  D (pink,S)
0             1            5           9
1             2            6          10
2             3            7          11
3             4            8          12