如何解决在python中将大数据集划分为较小的子集
我有一个很大的基于时间的数据集。它具有120,496个数据点。我想要每个子集有600个数据点的较小子集(问题出在最后的序列上,因为长度不是600的倍数),我可以用冗长又脏的for循环来做到这一点,但我想问一下是否有任何简单的功能可以执行此任务?或者有人会因为我有点迷路而朝着正确的方向前进。 我假设这确实存在,因为据我所知,一些音频文件分析方法将语音样本分成较小的部分。
任何帮助将不胜感激。
解决方法
np.array_split(df,n)
将数据帧拆分为n个子数据帧,而splitDataFrameIntoSmaller(df,chunkSize = n)
每隔chunkSize
行拆分数据帧。
# input - df: a Dataframe,chunkSize: the chunk size
# output - a list of DataFrame
# purpose - splits the DataFrame into smaller chunks
df = pd.DataFrame([1,2,3,4,5,6,7,8,9,10,11],columns=['TEST'])
df_split = np.array_split(df,3)
您将获得3个子数据帧:
df_split[0] # 1,4
df_split[1] # 5,8
df_split[2] # 9,11
使用:
def splitDataFrameIntoSmaller(df,chunkSize = 10): #10 for default
listOfDf = list()
numberChunks = len(df) // chunkSize + 1
for i in range(numberChunks):
listOfDf.append(df[i*chunkSize:(i+1)*chunkSize])
return listOfDf
df_split2 = splitDataFrameIntoSmaller(df,chunkSize = 3)
您获得4个子数据帧:
df_split2[0] # 1,3
df_split2[1] # 4,6
df_split2[2] # 7,9
df_split2[3] # 10,11
希望对您有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。