随机排列大型 csv 的行
Shuffle rows of a large csv
我想打乱这个数据集以获得一个随机集。它有 160 万行,但第一行是 0,最后是 4,所以我需要随机选择样本以拥有多个 class。实际代码只打印 class 0(意思是只打印 1 class)。我听取了这个平台的建议,但没有用。
fid = open("sentiment_train.csv", "r")
li = fid.readlines(16000000)
random.shuffle(li)
fid2 = open("shuffled_train.csv", "w")
fid2.writelines(li)
fid2.close()
fid.close()
sentiment_onefourty_train = pd.read_csv('shuffled_train.csv', header= 0, delimiter=",", usecols=[0,5], nrows=100000)
sentiment_onefourty_train.columns=['target', 'text']
print(sentiment_onefourty_train['target'].value_counts())
因为您使用 Pandas 读取数据,您还可以使用 pd.sample
:
以不同的方式进行随机化
df = pd.read_csv('sentiment_train.csv', header= 0, delimiter=",", usecols=[0,5])
df.columns=['target', 'text']
df1 = df.sample(n=100000)
如果失败,最好检查一下唯一值的数量以及它们出现的频率。如果前1,599,999个是0,最后一个只有4,那你很有可能得不到4。
我想打乱这个数据集以获得一个随机集。它有 160 万行,但第一行是 0,最后是 4,所以我需要随机选择样本以拥有多个 class。实际代码只打印 class 0(意思是只打印 1 class)。我听取了这个平台的建议,但没有用。
fid = open("sentiment_train.csv", "r")
li = fid.readlines(16000000)
random.shuffle(li)
fid2 = open("shuffled_train.csv", "w")
fid2.writelines(li)
fid2.close()
fid.close()
sentiment_onefourty_train = pd.read_csv('shuffled_train.csv', header= 0, delimiter=",", usecols=[0,5], nrows=100000)
sentiment_onefourty_train.columns=['target', 'text']
print(sentiment_onefourty_train['target'].value_counts())
因为您使用 Pandas 读取数据,您还可以使用 pd.sample
:
df = pd.read_csv('sentiment_train.csv', header= 0, delimiter=",", usecols=[0,5])
df.columns=['target', 'text']
df1 = df.sample(n=100000)
如果失败,最好检查一下唯一值的数量以及它们出现的频率。如果前1,599,999个是0,最后一个只有4,那你很有可能得不到4。