如何比较同一数据框的两列中的值并将结果输出到新表中

问题描述

我目前正在使用pandas和python 3.6.5在一个大型数据库上工作,该数据库具有300万行和200列。

数据库的两列包含我要比较并突出其差异的评级(低,中低,中高和高)。

以下是我的数据示例:

>>> df
        ID     rating_A     rating_B
0  AAA0001          LOW          LOW
1  AAA0002          LOW   MEDIUM-LOW
2  AAA0003   MEDIUM-LOW          LOW
3  AAA0004  MEDIUM-HIGH         HIGH
4  AAA0005         HIGH  MEDIUM-HIGH

我想在某种类型的数据透视表中输出差异,这将使我能够准确地识别出差异并计算它们。我正在寻找全局,我不希望数据库中具有不同等级的ID。

我考虑过这种输出

>>> df2
      rating A   B_LOW   B_MEDIUM-LOW   B_MEDIUM-HIGH   B_HIGH
0          LOW       x              x               x        x
1   MEDIUM-LOW       x              x               x        x
2  MEDIUM-HIGH       x              x               x        x
3         HIGH       x              x               x        x

我一直在考虑如何到达那里,但是我想到的唯一解决方案是一个古老的“如果森林”,它写起来会很痛苦,而且效果不是很好。

例如:

>>> for row in df.itertuples():
...     if row.rating_A == "LOW" and row.rating_B == "LOW":
...             df2.loc[0,'B_LOW'] += 1
...     elif row.rating_A == "LOW" and row.rating_B == "MEDIUM-LOW":
...             df2.loc[0,'B_MEDIUM-LOW']
(...)

有没有办法使用熊猫或其他python库更有效地解决该问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)