合并Pandas DataFram中多行的数据

2024-05-13 18:23:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Pandas作为Python的一部分,我有下表。我一辈子都不知道怎么做下面的事。任何帮助都将不胜感激。在

我有一个有很多重复时间点的数据表。但是,每个重复的时间点都会填充行的不同部分。我想把所有的时间点合并成一行,其中包含所有的信息。在

我不想合计列数。 我不想连接列。在

我希望获取某列中单个时间点的第一个值,忽略该列中同一时间点的任何其他值。在

这张表应该把这一点弄清楚。在

+----------------+---+---+---+--+---+---+---+--+---+---+---+
| 09/07/20171310 |   | 1 |   |  |   |   |   |  |   |   |   |
| 09/07/20171310 |   |   | 1 |  |   |   |   |  |   |   |   |
| 09/07/20171310 | 3 |   |   |  |   |   |   |  |   |   |   |
| 09/07/20171310 |   |   |   |  |   |   |   |  |   |   | 1 |
| 09/07/20171310 |   |   |   |  |   |   | 1 |  |   |   |   |
| 09/07/20171310 |   |   |   |  |   |   |   |  | 2 |   |   |
| 09/07/20171310 |   |   |   |  | 2 |   |   |  |   |   |   |
| 09/07/20171920 |   |   |   |  |   |   |   |  |   | 1 |   |
| 09/07/20171920 |   |   |   |  |   |   |   |  |   |   | 1 |
| 09/07/20171920 |   |   |   |  |   |   | 1 |  |   |   |   |
| 09/07/20171920 |   |   |   |  |   | 1 |   |  |   |   |   |
| 09/07/20171920 |   |   |   |  |   |   |   |  | 3 |   |   |
| 09/07/20171920 |   |   |   |  | 3 |   |   |  |   |   |   |
| 09/07/20171920 | 6 |   |   |  |   |   |   |  |   |   |   |
| 09/07/20171920 |   |   | 1 |  |   |   |   |  |   |   |   |
| 09/07/20171920 |   | 4 |   |  |   |   |   |  |   |   |   |
+----------------+---+---+---+--+---+---+---+--+---+---+---+

我想要

^{pr2}$

我会很感激你的帮助。在


Tags: 信息pandas时间数据表我会列数pr2
1条回答
网友
1楼 · 发布于 2024-05-13 18:23:23

假设时间戳是索引,使用groupby+max

df.groupby(level=0).max().fillna('')

+        + -+ -+ -+ + -+  -+ -+ + -+  -+ -+
| 09/07/20171310 | 3 | 1 | 1 |  | 2 |     | 1 |  | 2 |     | 1 |
| 09/07/20171920 | 6 | 4 | 1 |  | 3 | 1.0 | 1 |  | 3 | 1.0 | 1 |
+        + -+ -+ -+ + -+  -+ -+ + -+  -+ -+

如果不是索引,则将level=0改为df.columns[0]。在

这里的另一个假设是空值是NaNs。如果不是,请在分组之前替换它们:

^{pr2}$

相关问题 更多 >