利用pandas處理文字大資料訓練樣本隨機化

2021-09-11 15:35:09 字數 1451 閱讀 9225

從事的是自然語言處理的工作,之前做的demo都是小於100萬的資料集,使用強大的excel可輕鬆handle

現遇到了大約200萬的訓練樣本,要隨機化處理。雖然知道sklearn有可以隨機劃分訓練集測試集的函式,也是一種方法。但這裡採用的是一種可自由設定資料格式的方法pandas,先上**,很簡潔的。

import numpy as np

import random

import csv

import pandas as pd

all_data_df = pd.read_csv("input_data.csv", sep='\t', header=none,names=["org_index", "s1", "s2", "label"])

#使用pandas 讀取csv原始資料,儲存為pandas資料格式(同**形式)

all_data_df['random']=random.uniform(0,1) #增加一列,命名為random,值為隨機數

df_frame = pd.dataframe(all_data_df) #將pandas資料格式轉化為dataframe

df_frame = df_frame.sort_index(by='random')

#將所有資料安裝random列排序,達到隨機打亂樣本的效果

df_frame = df_frame.set_index(['org_index'])#為打亂後資料重新建立索引

df_frame = df_frame.reset_index(drop=true)#重新生成新索引,丟棄原始索引

df_frame.reset_index(level=none)#新索引,從頭開始自動遞增

df_frame.to_csv(path_or_buf="output_random_data.csv", sep='\t', na_rep='', float_format=none, columns=["s1", "s2", "label"], header=true, index=true, mode='w', encoding="utf8") #將資料儲存為csv格式,即可得到隨機後的樣本,且索引重新生成

輸入檔案為:input.csv  輸出檔案為:output_random_data.csv 隨機化後的資料樣本

資料格式為 :

第一列是索引 org_index  ,第二列是句子1, 第三列是句子2 ,第四列 是標籤(其中0表示兩個句子不相似,1表示兩個句子相似)。每列直接用製表符「\t」進行分隔。

**處理步驟,模擬**處理操作

1,新增加資料列

2,在新增加的資料列中生成隨機數

3,將所有資料安裝隨機數那列進行排序

4,將第一列索引重新賦值即可

然後就可以使用文字編輯器安裝資料比較劃分訓練集和測試集啦。該**僅用於可以使用文字編輯器開啟的資料規模,還沒有達到真正海量的資料處理,適合中等規模資料處理方法。

pandas 大資料處理

準備 檢視所佔記憶體函式 def mem usage pandas obj if isinstance pandas obj,pd.dataframe usage b pandas obj.memory usage deep true sum else usage b pandas obj.memo...

乾貨 利用pandas處理Excel資料

新建乙個excel table1.csv 用於案例講解 df pd.read excel table1.xlsx 相對路徑 df pd.read excel r e anaconda hc datascience table1.csv 絕對路徑 顯示資料的行與列數 df.shape 6,5 顯示資料...

pandas處理大文字資料

當資料檔案是百萬級資料時,設定chunksize來分批次處理資料 案例 美國 競選時的資料分析 讀取資料 import numpy as np import pandas as pd from pandas import series,dataframe df1 pd.read csv usa el...