簡體   English   中英

隨機排列大 csv

[英]Shuffle rows of a large csv

我想打亂這個數據集以獲得一個隨機集。 它有 160 萬行,但第一行是 0,最后一行是 4,所以我需要隨機選擇樣本以獲得多個 class。實際代碼僅打印 class 0(意味着只有 1 類)。 我從這個平台上聽取了建議,但沒有用。

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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM