python - 拆分单个大型 csv 文件以按两列重新采样
问题描述
我正在使用手机传感器数据(加速度计)进行机器学习项目。在将数据集导出到 ML 模型之前,我需要对其进行预处理。我有 25 个班级(数据集中的字母表),每个班级有 20 个科目(我得到字母表的次数)。由于每个班级和科目的长度不同,我必须重新采样。我想按类拆分单个 csv 文件,并且能够重新采样。我尝试了一些类似 groupby() 或其他东西的东西,但没有奏效。如果你能分享我能解决这个问题的想法,我会很高兴。这是我第一次在这个网站上提问,如果我犯了错误,如果你警告我我的错误,我将不胜感激。从现在开始谢谢你。
我分享了一些代码和输出,以帮助您更好地理解我的问题。
当我尝试使用 groupby() 时得到了什么,但不完全是我想要的
<a href="https://i.stack.imgur.com/Pm8rp.png" rel="nofollow noreferrer">这就是我的 csv 文件的样子。它包含超过 300,000 条数据。
一些代码片段:
import pandas as pd
import numpy as np
def read_data(file_path):
data = pd.read_csv(file_path)
return data
# read csv file
dataset = read_data('raw_data.csv')
df1 = pd.DataFrame( dataset.groupby(['alphabet', 'subject'])['x_axis'].count())
df1['x_axis'].head(20)
我还需要为每个 x_axis、y_axis 和 z_axis 执行此操作,那么除了 groupby() 函数我还能使用什么?我不想只使用长度,还想使用所有三个的值来重新采样。
解决方案
一、计算最大常见样本数
num_sample = df.groupby(['alphabet', 'subject'])['x_axis'].count().min()
现在您可以采样
df.groupby(['alphabet', 'subject']).sample(num_sample)
推荐阅读
- .net - 无法更改状态栏背景色
- video - FFMPEG,播放器在编码后播放生涩的视频
- javascript - 将更新元素从一个文件反应到另一个文件
- python-3.x - Azure Python 函数错误--grpcMaxMessageLength 2147483647
- django - Django 表单不会呈现(modelForm)
- c++ - 为什么 C++ 模板代码在我的 lambda 中运行得更快?
- oracle - 如何比较两个表之间的数据,其中一个表在oracle中,另一个在postgres中
- python - 如何在不使用外部库的情况下在 Python 中交换多维列表的列和行?
- java - 为什么循环没有在这里中断?
- python - TypeError:Opencv 中的自我类型不正确(必须是“StereoMatcher”或其派生词)