【发布时间】:2021-11-03 08:55:26
【问题描述】:
我接触 Python 的时间很短,遇到问题时我通常会在网上找到答案,但我没有找到类似的东西,我觉得卡住了,所以我将解释我的问题.
简单来说,我有一个这样的数据框:
df:
| ID | X | Y | Z |
|---|---|---|---|
| A | 1 | 0 | 0 |
| A | 0 | 0 | 1 |
| A | 1 | 0 | 0 |
| B | 0 | 1 | 0 |
| B | 1 | 0 | 0 |
| B | 0 | 0 | 1 |
| B | 1 | 0 | 0 |
我想将 X、Y 和 Z 列中的所有“1”移动到具有各自 ID 列的第一个值的行。
这将是所需的输出:
end_df:
| ID | X | Y | Z |
|---|---|---|---|
| A | 1 | 0 | 1 |
| B | 1 | 1 | 1 |
我认为我可以移动这些值,然后删除所有剩余的行
df.groupby('ID').first(),但我不知道如何将值向上移动到各自的行。
【问题讨论】:
-
只有
0, 1,所以可以用df.groupby('ID').max()?