从年月熊猫中提取月份到列

时间:2020-10-11 07:44:29

标签: python-3.x pandas

我需要从年和月所在的行中选择月份,并将其放在列中。

来自此df:

2018-01 33651.64
2018-02 24869.52
2018-03 41602.48
2018-04 41011.95
2019-01 64912.46
2019-02 77526.91
2019-03 163113.66
2019-04 74833.04

像这样的df:

            1        2         3        4 5 6 7 8 9 10 11 12
2017        0        0         0        0
2018 33651.64 24869.52  41602.48 41011.95......
2019 64912.46 77526.91 163113.66 64912.46......

1 个答案:

答案 0 :(得分:0)

执行此操作的方法有多种,但是保留最多信息的方法可能是首先确保日期列为datetime格式,提取年和月,然后将整个数据框放在{ {1}}和year。具体来说,您可以运行(我假设使用列名):

month

这会将您的数据框转换为:

df['month'] = df.date.apply(pd.to_datetime).dt.month
df['year'] = df.date.apply(pd.to_datetime).dt.year

df.pivot(index='year', columns='month', values='num')

请注意,month 1 2 3 4 year 2018 NaN 24869.52 41602.48 41011.95 2019 64912.46 77526.91 163113.66 74833.04 仍然具有df列(全年),但是您仅在数据透视图中使用dateyear列。另外,如果您的month列已经是date类型,则可以使用datetime跳过第一个转换。