我有一个包含12个月数据的数据框(我有一个日期列)。我想根据日期列中的唯一值将该数据帧分为12个数据帧。每个月数据框将再更新1个月,因此需要花费最近的12个月
答案 0 :(得分:0)
在Pandas中的DataFrame上执行操作时,它不会更改原始DataFrame,而是传递新的DataFrame,并将更改应用为返回值。因此,如果这样做,例如:
df = pd.DataFrame.from_csv('data.csv')
new_df = df[df.name == 'John']
df 和 new_df 是完全不同的DataFrame,其中 new_df 是 df 的子集。因此,要实现所需的功能,只需按月过滤原始DataFrame。值得注意的是,如果日期列的类型为DateTime,则可以使用 .dt 来执行特定于日期时间的操作,例如:
df[df.dt.month == 1]
考虑到这一点,您可以执行类似的操作(假设您原来的DataFrame被称为 df ):
monthly_array = list()
for i in range(1,13):
monthly_array[i-1] = df[df.date.dt.month == i]