【发布时间】:2021-07-04 22:07:00
【问题描述】:
我有一个 Pandas 数据框,其中的列是“月”和“年”,还有一个“value_list”,它是一个值列表 - 每个月的每一天都有一个。像这样 -
| year | month | value_list |
|---|---|---|
| 1990 | 2 | [10, 20, 30, 40, ...... 290, 300] |
| 1990 | 3 | [110, 120, 130, 140, ...... 390, 400] |
我想将它们解压成多行 - 每天一个(新列),这样我就会得到如下内容 -
| year | month | day | value |
|---|---|---|---|
| 1990 | 2 | 1 | 10 |
| 1990 | 2 | 2 | 20 |
| 1990 | 2 | 3 | 30 |
| 1990 | 2 | 4 | 40 |
等等。
我尝试使用 df.explode() 但无济于事,因为索引被重置或设置为新的单个索引。如何在解压列表时自动获取日期(本质上是创建年、月、日期多索引)?
【问题讨论】:
-
如果
df['value_list']是真实列表,df.explode('value_list')应该可以工作。如果不起作用,请尝试df['value_list']=df['value_list'].str.strip('[]').str.split(',')后跟df.explode('value_list') -
抱歉,如果我不是很清楚。 df.explode 确实有助于爆炸/拆包,但是我无法获得所有爆炸行在新列(天)中具有不同值的第二部分。我所拥有的是一份真实的清单,但我明白你的意思——谢谢!
-
好的,你说清楚了,已经有解决方案了。继续编码
标签: python pandas dataframe multi-index