利用pandas库中的groupby函数和astype函数,我们可以很方便地完成这个任务。首先读入含有日期和类别信息的数据集:
import pandas as pd
df = pd.read_csv('data.csv')
接下来,将“Date”列设置为索引,并按照日期进行分组,将每一组中的列转换为类别:
df = df.set_index('Date') grouped = df.groupby(pd.Grouper(freq='M')).apply(lambda x: x.astype('category'))
使用pd.Grouper(freq='M')将日期按月份进行分组,并使用apply函数对每一组中的每一列应用lambda函数,将其转换为类别。
最后,我们可以使用grouped来访问每一个日期对应的数据集,例如:
print(grouped.loc['2021-01'])
输出结果将是2021年1月份的数据集,其中所有列均已转换为类别类型。