将日期月份转换为序列
convert month of dates into sequence
我想将年份中的月份组合成序列,例如,我有这样的数据框:
stuff_id date
1 2015-02-03
2 2015-03-03
3 2015-05-19
4 2015-10-13
5 2016-01-07
6 2016-03-20
我想对日期中的月份进行排序。所需的输出是:
stuff_id date month
1 2015-02-03 1
2 2015-03-03 2
3 2015-05-19 4
4 2015-10-13 9
5 2016-01-07 12
6 2016-03-20 14
这意味着 feb'15 是日期列表中的第一个月,jan'2016 是 feb'2015 之后的第 12 个月
如果您的 date
列是日期时间(如果不是,则将其转换为日期时间),您可以为此使用 .dt.month
和 .dt.year
属性!
https://pandas.pydata.org/docs/reference/api/pandas.Series.dt.month.html
重铸
(文本复制自 )
>>> df = pd.read_table(io.StringIO(s), delim_whitespace=True) # text from SO
>>> df["date"] = pd.to_datetime(df["date"])
>>> df
stuff_id date
0 1 2015-02-03
1 2 2015-03-03
2 3 2015-05-19
3 4 2015-10-13
4 5 2016-01-07
5 6 2016-03-20
>>> df.dtypes
stuff_id int64
date datetime64[ns]
dtype: object
将年份和月份提取为十进制月份并减少为相对月份
>>> months = df["date"].dt.year * 12 + df["date"].dt.month # series
>>> df["months"] = months - min(months) + 1
>>> df
stuff_id date months
0 1 2015-02-03 1
1 2 2015-03-03 2
2 3 2015-05-19 4
3 4 2015-10-13 9
4 5 2016-01-07 12
5 6 2016-03-20 14
我想将年份中的月份组合成序列,例如,我有这样的数据框:
stuff_id date
1 2015-02-03
2 2015-03-03
3 2015-05-19
4 2015-10-13
5 2016-01-07
6 2016-03-20
我想对日期中的月份进行排序。所需的输出是:
stuff_id date month
1 2015-02-03 1
2 2015-03-03 2
3 2015-05-19 4
4 2015-10-13 9
5 2016-01-07 12
6 2016-03-20 14
这意味着 feb'15 是日期列表中的第一个月,jan'2016 是 feb'2015 之后的第 12 个月
如果您的 date
列是日期时间(如果不是,则将其转换为日期时间),您可以为此使用 .dt.month
和 .dt.year
属性!
https://pandas.pydata.org/docs/reference/api/pandas.Series.dt.month.html
重铸
(文本复制自
>>> df = pd.read_table(io.StringIO(s), delim_whitespace=True) # text from SO
>>> df["date"] = pd.to_datetime(df["date"])
>>> df
stuff_id date
0 1 2015-02-03
1 2 2015-03-03
2 3 2015-05-19
3 4 2015-10-13
4 5 2016-01-07
5 6 2016-03-20
>>> df.dtypes
stuff_id int64
date datetime64[ns]
dtype: object
将年份和月份提取为十进制月份并减少为相对月份
>>> months = df["date"].dt.year * 12 + df["date"].dt.month # series
>>> df["months"] = months - min(months) + 1
>>> df
stuff_id date months
0 1 2015-02-03 1
1 2 2015-03-03 2
2 3 2015-05-19 4
3 4 2015-10-13 9
4 5 2016-01-07 12
5 6 2016-03-20 14