微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

拆分单个大型 csv 文件以按两列重新采样

如何解决拆分单个大型 csv 文件以按两列重新采样

我正在使用手机传感器数据(加速度计)进行机器学习项目。在将数据集导出到 ML 模型之前,我需要对其进行预处理。我有 25 个班级(数据集中的字母表),每个班级有 20 个科目(我得到了多少个字母表)。由于每个班级和科目的长度不同,我必须重新采样。我想按类和主题拆分单个 csv 文件以便能够重新采样。我尝试了一些像 groupby() 或其他东西,但没有奏效。如果您能分享我对这个问题的看法,我会很高兴。这是我第一次在这个网站上提问,如果我犯了错误,如果你警告我我的错误,我将不胜感激。从现在开始谢谢你。

分享了一些代码输出,以帮助您更好地理解我的问题。

what i got when i tried with groupby() but not exactly what i wanted

This is how my csv file looks like. It contains more than 300,000 data.

一些代码片段:

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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。