拆分单个大型 csv 文件以按两列重新采样
Splitting a single large csv file to resample by two columns
我正在用 phone 传感器数据(加速度计)做一个机器学习项目。在将数据集导出到 ML 模型之前,我需要对其进行预处理。我有 25 个 classes(数据集中的字母表),每个 class 有 20 个主题(我得到字母表的次数)。由于每个 class 和主题的长度不同,我必须重新采样。我想通过 class 拆分单个 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)
我正在用 phone 传感器数据(加速度计)做一个机器学习项目。在将数据集导出到 ML 模型之前,我需要对其进行预处理。我有 25 个 classes(数据集中的字母表),每个 class 有 20 个主题(我得到字母表的次数)。由于每个 class 和主题的长度不同,我必须重新采样。我想通过 class 拆分单个 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)