【问题标题】:Pandas restrucutring to longform [duplicate]熊猫重组为长格式[重复]
【发布时间】:2021-11-12 16:20:16
【问题描述】:

我有一个这种格式的数据框:

{'April': {0: 3266.0, 3: 3044.0, 6: 3607.0},
 'May': {0: 3767.0, 3: 3708.0, 6: 3709.0},
 'June': {0: 4114.0, 3: 3539.0, 6: 4416.0},
 'July': {0: 4544.0, 3: 5176.0, 6: 5298.0},
 'August': {0: 4912.0, 3: 5424.0, 6: 5217.0},
 'September': {0: 5358.0, 3: 5027.0, 6: 5262.0},
 'October': {0: 5265.0, 3: 5163.0, 6: 5597.0},
 'November': {0: 5167.0, 3: 5621.0, 6: 5457.0},
 'December': {0: 3953.0, 3: 4074.0, 6: 4745.0},
 'January': {0: 4235.0, 3: 5792.0, 6: 5067.0},
 'February': {0: 3506.0, 3: 3861.0, 6: 3704.0},
 'March': {0: 3840.0, 3: 3815.0, 6: 3679.0},
 'year': {0: 2015, 3: 2016, 6: 2017}}

任务是使用数据框中的年份列和月份的相应值绘制时间序列。为此,我尝试使用 pandas.wide_to_longpandas.pivot 将数据帧转换为长格式,但不成功,我们将不胜感激。

预期输出:

year, month, value
2015, January, 4235.0
2015, February, 3506.0
2015, March, 3840.0
... , ..., ...
2017, November, 5457.0
2017, December, 4745.0

【问题讨论】:

  • df.melt(id_vars='year', var_name='month')

标签: python-3.x pandas dataframe


【解决方案1】:

你需要melt:

df.melt('year', var_name='month')

    year      month   value
0   2015      April  3266.0
1   2016      April  3044.0
2   2017      April  3607.0
3   2015        May  3767.0
4   2016        May  3708.0
5   2017        May  3709.0
6   2015       June  4114.0
...

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2018-12-15
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2014-02-23
    相关资源
    最近更新 更多