从 csv 文件生成随机样本,同时跳过具有某些值的行

Posted

技术标签:

【中文标题】从 csv 文件生成随机样本,同时跳过具有某些值的行【英文标题】:Generating random sample from csv file, whilst skipping rows with certain values 【发布时间】:2021-02-23 10:09:16 【问题描述】:

我正在尝试从包含数万行的 .csv 文件中生成 5000 行的随机子样本。 df 包含两列:“JPG”和“NAME”。

我使用以下代码生成了一个随机子样本:

import pandas as pd

file = pd.read_csv(r'C:\filepath\data.csv', usecols = [7, 8])

sample = file.sample(n=5000)
print(sample)

但是,现在我希望做同样的事情,但包括一个 for 循环,它可以这样做,同时跳过 't3' 中的字符串 't3' 的任何行em>'NAME' 列。

这就是我现在所处的位置,但正在努力让它发挥作用:

import pandas as pd

file = pd.read_csv(r'C:\filepath\data.csv', usecols = [7, 8])

sample = file.sample(n=5000)
for num in sample:
    if sample.loc[sample['NAME'] == 't3']:
        continue
print(sample)

对此的任何帮助将不胜感激。

谢谢, 回复

【问题讨论】:

【参考方案1】:

为什么不事先过滤掉所有带有NAME t3 的行?喜欢:

import pandas as pd

file = pd.read_csv(r'C:\filepath\data.csv', usecols = [7, 8])
file_without_t3 = file[file['NAME'] != 't3']

sample = file_without_t3.sample(n=5000)
print(sample)

【讨论】:

非常好!我过于复杂了,并且在这个过程中感到困惑。感谢赵老师的帮助! :)

以上是关于从 csv 文件生成随机样本,同时跳过具有某些值的行的主要内容,如果未能解决你的问题,请参考以下文章

从 R 中的大型 .CSV 导入和提取随机样本

R-从 PurpleAir 传感器读取 csv 文件并跳过某些行末尾包含非标准字符的错误位置

如何跳过 CSV 文件的列

加载csv文件s3 pyspark的随机样本

将大 csv 文件中的小随机样本加载到 R 数据框中

如何创建具有从 csv 文件中的列表收集的唯一名称值的类的多个对象