【发布时间】:2021-07-31 00:25:45
【问题描述】:
我有这个 DF,我正在尝试将任意两行与相似的 workDate 和 ID 合并。我不知道这个 DF 会有多少列。它可能有数百列,所以我正在寻找一种无需指定所有列名即可合并的方法
|workDate |ID | Hours |Groundsman |names2 |Teachers |Profs
---------------------------------------------------------------------------------
0 |2020-01-09 |13702 | 1.0 | Ted | | |
1 |2020-01-09 |13702 | 1.0 | |Seline | |
2 |2020-01-10 |13702 | 20.0 | |Ted,Sam | |
3 |2020-01-10 |13702 | 20.0 | | |Pete,Norm,Tim |
4 |2020-01-10 |13702 | 20.0 | | | |Joe
期望的输出:
|workDate |ID | Hours |Groundsman |names2 |Teachers |Profs
---------------------------------------------------------------------------------
0 |2020-01-09 |13702 | 1.0 | Ted |Seline | |
1 |2020-01-10 |13702 | 20.0 | |Ted,Sam |Pete,Norm,Tim |Joe
我尝试了多种分组方式,但都没有得到我想要的输出。正如我提到的 DF 可能有很多其他列,所以我不能使用期望包含所有列名称的解决方案。
它基本上是由workDate 和ID 分组的,但我也想将所有值保留在其他列中
【问题讨论】:
-
不太清楚你的逻辑是什么。您如何确定为相似的
workDate和ID保留哪个值? -
它基本上按
workDate和ID分组,但我也想将所有值保留在其他列中。我希望这是有道理的 -
我编辑了输出。也许那令人困惑。具有 0 和 1 的第一列只是索引列,我不关心它
-
在您的示例中:如果 - 而不是第一行和第二行的 hours=1 和 hours=1,您看到 hours=1 和 hours=5,该怎么办?该组将保留哪个值?
-
这还不够好 - 防御性编程需要假设如果可能发生不好的事情,它会发生。 @MDR 的答案采用最后看到的值,这可能适合您的用例。
标签: python python-3.x pandas dataframe pandas-groupby