如何合并这两个数据帧,同时保留原始数据帧的索引?

时间:2021-03-15 01:57:32

标签: python pandas dataframe

这是作为 df1 的 dataframe1: https://i.stack.imgur.com/ng93s.png

这是作为 df2 的 dataframe2:

https://i.stack.imgur.com/9hV37.png

df1 按 Id 排序,我想在 FrequencyUsers df2 的十进制百分比下添加到 df1,但按 Id 排序。 所以它看起来像这样: https://i.stack.imgur.com/p38aO.png

十进制数是 Pandas 的 .value_counts(normalize=True),其中包含 ProductID 在所有唯一产品中的频率。

如何将 df2 附加到 df1?

另一个例子: df1是

df1:
    revenue      MaxTemp
   385.943800      14
  1074.160340      9
  2980.857860      8
  1919.723960      10
   385.943800      14
   869.071070      11
   760.289260      13
  1919.723960      10
  2273.413250      7
  2273.413250      7
  1074.160340      9
df2:
      CET    MaxTemp  MeanTemp MinTemp  MaxHumidity  MeanHumidity  MinHumidity
0  2016-11-17   11      9        7            100           85             63
1  2016-11-18   9       6        3             93           83             66
2  2016-11-19   8       6        4             93           87             76
3  2016-11-20   10      7        4             93           84             81
4  2016-11-21   14     10        7            100           89             77
5  2016-11-22   13     10        7             93           79             63
6  2016-11-23   11      8        5            100           91             82
7  2016-11-24   9       7        4             93           80             66
8  2016-11-25   7       4        1             87           74             57
9  2016-11-26   7       3       -1            100           88             61
10 2016-11-27  10       7        4            100           81             66   

我将如何追加以制作 df3:

df3:
      CET    MaxTemp  revenue(shortened)
0  2016-11-17   11        869
1  2016-11-18   9         1074
2  2016-11-19   8         2980
3  2016-11-20   10        1919.723960
4  2016-11-21   14        385.943800
5  2016-11-22   13        760.289260
6  2016-11-23   11        869.071070
7  2016-11-24   9         1074
8  2016-11-25   7         2273.413250
9  2016-11-26   7         2273.413250
10 2016-11-27  10         1919.723960

1 个答案:

答案 0 :(得分:0)

根据我从您的问题中收集到的信息,您希望基于 MaxTemp 列组合 df1 和 df2。您可以执行以下操作:

import pandas as pd
df3 = pd.merge(df1, df2, on = ['MaxTemp']) 
df3 = df3[['CET', 'MaxTemp', 'revenue']]