如何在熊猫中将多行折叠为一

时间:2019-08-19 19:42:28

标签: python pandas dataframe

我正在处理表格数据,其中我的每一列都是分类的,除了两列外,我将它们分别称为var_1和var_2。现在,我每行只显示一个值。我想通过合并行来消除这种冗余,以便在一行中显示var_1和var_2而不是在两行中显示它们。

一个例子:

当前,我的数据框如下所示:

+------------+-------+-------+-------+-------+-------+-------+-------+
|   Cat_1    | Cat_2 | Cat_3 | Cat_4 | Var_1 | Var_2 | Cat_5 | Cat_6 |
+------------+-------+-------+-------+-------+-------+-------+-------+
| 28/01/2018 | A1    |       | Left  | 10.0  | NAN   | Yes   | Yes   |
| 28/01/2018 | A1    |       | Left  | NAN   | 150   | Yes   | Yes   |
| 29/01/2018 | A2    |       | Left  | 88.0  | NAN   | No    | Yes   |
| 29/01/2018 | A2    |       | Left  | NAN   | 100   | No    | Yes   |
+------------+-------+-------+-------+-------+-------+-------+-------+

我想合并所有类别变量都相同的行,并像这样并排显示Var_1和Var_2的值。

+------------+-------+-------+-------+-------+-------+-------+-------+
|   Cat_1    | Cat_2 | Cat_3 | Cat_4 | Var_1 | Var_2 | Cat_5 | Cat_6 |
+------------+-------+-------+-------+-------+-------+-------+-------+
| 28/01/2018 | A1    |       | Left  | 10.0  |   150 | Yes   | Yes   |
| 29/01/2018 | A2    |       | Left  | 88.0  |   100 | No    | Yes   |
+------------+-------+-------+-------+-------+-------+-------+-------+

我保证最多有2行共享相同的所有内容。这些行之一将在Var_1中包含NAN,在Var_2中包含一个数值,而另一行将在Var_2中具有NAN,并在Var_1中包含一个数值。

我尝试玩pd.groubypd.meltpd.concat,但无济于事。

1 个答案:

答案 0 :(得分:0)

怎么样?


df.fillna(0).groupby(by=['cat1','cat2','cat3','cat4','cat5','cat6']).agg('sum')
相关问题