我需要从年和月所在的行中选择月份,并将其放在列中。
来自此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......
答案 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
列(全年),但是您仅在数据透视图中使用date
和year
列。另外,如果您的month
列已经是date
类型,则可以使用datetime
跳过第一个转换。