【发布时间】:2019-01-25 13:37:46
【问题描述】:
我有两个行长不同、列相似但没有相应排列的数据框。我想从 df1 中减去 df2 ,然后将结果除以 df1 (基本上在最后得到一个百分比)。
Df1
Index Bircher Club Quiche
2019-1-18 16 1 4
2019-1-19 4 9 6
2019-1-28 8 1 6
2019-1-29 4 7 6
2019-1-20 8 1 6
Df2
Index Bircher Quiche Club
2019-1-10 15 1 3
2019-1-18 4 1 1
2019-1-20 4 2 6
2019-1-26 2 1 5
2019-1-25 4 1 2
结果:只有日期 2019-1-18 和 2019-1-20 显示在两个数据框中并且可以使用。那么Df3就用这个数学公式(Df1-DF2)/Df1简单表示
Index Bircher Club Quiche
2019-1-18 75% 0% 75%
2019-1-20 50% -100% 0%
【问题讨论】:
-
重命名 df1 和 df2 中的列以区分它们。像 Bircher1、Bircher2 等。内部加入日期的两个数据框。这将为您提供一个只有共同日期的单一数据框。然后只需使用所需的公式创建新的计算列。像
df['Bircher_pct'] = (df['Bircher1'] - df['Bircher2']) / df['Bircher1']这样的东西。然后只需将 df 过滤为您想要的 3 pct 列。 -
无需显式重命名列。请参阅下面的答案,它很简单,可以用于任意数量的列。
标签: python python-3.x pandas dataframe