hkm*_*kml 3 split numpy dataframe pandas
我有一个大型时间序列数据框。我想编写一个函数,将这个大数据帧任意分割成 N 个连续的子周期作为新数据帧,以便可以轻松地对每个较小的数据帧进行分析。
我有这行代码,可以将大数据帧分割成均匀的子周期。我需要一个函数来输出这些分割的数据帧。
np.array_split(df, n) #n = arbitrary amount of new dataframes
Run Code Online (Sandbox Code Playgroud)
我希望每个新的数据帧都被标记为 1,2,3,4 等,用于它代表的每个子周期。因此返回 N 个数据帧,这些数据帧均根据初始大数据帧的时间性质进行标记。
df before the function applied
1 43.91 -0.041619
2 43.39 0.011913
3 45.56 -0.048801
4 45.43 0.002857
5 45.33 0.002204
6 45.68 -0.007692
7 46.37 -0.014992
8 48.04 -0.035381
9 48.38 -0.007053
3 new df's after function split applied
df1
1 43.91 -0.041619
2 43.39 0.011913
3 45.56 -0.048801
df2
4 45.43 0.002857
5 45.33 0.002204
6 45.68 -0.007692
df3
7 46.37 -0.014992
8 48.04 -0.035381
9 48.38 -0.007053
Run Code Online (Sandbox Code Playgroud)
如果任何方面需要澄清,请告诉我。谢谢你的时间!
从您的描述中我不知道您是否知道np.array_split输出n对象。如果只有几个对象,您可以手动分配它们,例如:
df1, df2, df3 = np.array_split(df, 3)
Run Code Online (Sandbox Code Playgroud)
这会将每个子数组按顺序分配给这些变量。否则,您可以将一系列子数组分配给单个变量;
split_df = np.array_split(df, 3)
len(split_df)
# 3
Run Code Online (Sandbox Code Playgroud)
然后循环这个变量并对每个子数组进行分析。我个人会选择后者。
for object in split_df:
print(type(object))
Run Code Online (Sandbox Code Playgroud)
这会打印<class 'pandas.core.frame.DataFrame'>三遍。
| 归档时间: |
|
| 查看次数: |
3681 次 |
| 最近记录: |