【发布时间】:2023-02-22 00:18:49
【问题描述】:
我正在尝试做一个看似非常简单的任务。给定一个数据框:
data = {
'lifestage': ['a', 'b', 'c', 'a', 'a', 'b'],
'CC': [1, 1, 0, 1, 0, 0],
'DC': [1, 0, 1, 0, 1, 0],
'AC': [1, 1, 0, 1, 1, 1],
'CASA': [1, 0, 0, 0, 1, 0],
'Stage_1': [1, 0, 1, 0, 1, 0],
'Stage_2': [0, 1, 0, 1, 0, 0],
'Stage_3': [0, 0, 0, 1, 0, 1]
}
df1 = pd.DataFrame(data)
原始表格如下所示:
| lifestage | CC | DC | AC | CASA | Stage_1 | Stage_2 | Stage_3 |
|---|---|---|---|---|---|---|---|
| a | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
| b | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
| c | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
| a | 1 | 0 | 1 | 0 | 0 | 0 | 1 |
| a | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
| b | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
这样输出看起来像这样
| Lifestage | Product | Stage_1 | Stage_2 | Stage_3 |
|---|---|---|---|---|
| a | CC | 1 | 0 | 1 |
| a | DC | 2 | 0 | 0 |
| a | AC | 2 | 0 | 1 |
| a | CASA | 2 | 0 | 0 |
| b | CC | 0 | 1 | 0 |
| b | DC | 0 | 0 | 0 |
| b | AC | 0 | 1 | 1 |
| b | CASA | 0 | 0 | 0 |
| c | CC | 0 | 0 | 0 |
| c | DC | 1 | 0 | 0 |
| c | AC | 0 | 0 | 0 |
| c | CASA | 0 | 0 | 0 |
【问题讨论】:
-
这是什么逻辑?我们不应该从你的输出中猜测,请明确
-
你试过什么?你做了什么研究?我不确定如何立即执行此操作,但我知道一些应该有帮助的资源:文档:Reshaping and pivot tables,所以问题:How can I pivot a dataframe? 如果您遇到问题的特定方面,请edit澄清,包括标题;见How to Ask。
-
@mozway FWIW,它好像它将 CC-CASA 列视为布尔值(或者可能是乘数)并对 Stage 列求和。
-
@wjandrea 是的,这就是我的想象(见我的回答),但这并不能完全产生提供的输出(另一个原因逻辑应始终明确提供)