根据内容合并熊猫数据框中的行,并进行多列分组

时间:2019-07-04 16:49:08

标签: python pandas dataframe scipy bigdata

我在Python的Pandas中有一个数据框,格式如下:

|-------------------------------|
|person | month | day | am | pm |
|-------------------------------|
|    A  |   5   | 10  | 1  | 0  |
|    B  |   5   | 10  | 1  | 0  |
|    A  |   5   | 12  | 0  | 1  |
|    B  |   5   | 12  | 1  | 0  |
|-------------------------------|

在这个虚拟的例子中,我有两个人在AM插槽或PM插槽上工作的数据(分别称为“ A”和“ B”)。因此,每一行包含该人的标签(A或B),月份和日期为两列,然后在AM和PM列中包含一个二进制值,以指示他们是否起作用(1)(0)。

我想将此数据框转换为另一种格式,其中每个月和日对只有一行,现在通过创建新列来包括人员标签,如下所示:

-----------------------------------------
month | day | A_am | A_pm | B_am | B_pm |
-----------------------------------------
   5  | 10  |  1   |   0  |   1  |  0   |
   5  | 12  |  0   |   1  |   1  |  0   |
-----------------------------------------

请问如何完成?我已经看到相关问题使用了诸如dataframe.agg和groupby之类的工具,但是我不确定如何针对我的情况进行调整。我想我需要按“月”和“日”列进行分组,然后以某种方式创建新列?

非常感谢任何帮助-谢谢。

请注意,这是一个虚拟示例,在我的实际用例中,要分组的两列不是月份和日期(即不是日期的一部分)。因此,我对月和日的任意dtypes的通用解决方案感兴趣,而不是将其转换为单个日期格式的东西。我也有大型数据集,因此性能非常重要,我想避免慢循环。

0 个答案:

没有答案