从 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 文件生成随机样本,同时跳过具有某些值的行的主要内容,如果未能解决你的问题,请参考以下文章