我对熊猫很陌生,我想做以下事情,但是在使用 groupby 时遇到了一些麻烦。请帮忙。
我有一个包含许多列的数据框,其中一列是日期。我需要一个来自它的不同月份的列表。
df = pd.DataFrame(['02 Jan 2018', '02 Feb 2018', '02 Feb 2018', '02 Mar 2018'], columns=['date'])
datelist = pd.to_datetime(df.date)
datelist = datelist.groupby([datelist.dt.month, datelist.dt.year])
当我这样做时,datelist.all()
我得到以下信息,
date date
1 2018 True
2 2018 True
Name: date, dtype: bool
我需要类似的东西 ['Jan 2018', 'Feb 2018']
我将衷心感谢您的帮助。
谢谢
使用to_datetime
,然后使用转换为自定义字符串strftime
,获取unique
值并最后转换为string
s:
datelist = pd.to_datetime(df.date).dt.strftime('%b %Y').unique().tolist()
print (datelist)
['Jan 2018', 'Feb 2018', 'Mar 2018']
如果日期时间的输入格式02 Jan 2018
被第一个空格分割,则另一个解决方案是split
选择第二个值并获取unique
值:
datelist = df['date'].str.split(n=1).str[1].unique().tolist()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句