顯示所有列
pd.set_option('display.max_columns', None)
讀取csv文件黎比,設(shè)置 nrows=100 讀取前100行數(shù)據(jù)
df = pd.read_csv('recently_static.csv', low_memory=False, nrows=100)
low_memory : boolean, default True
分塊加載到內(nèi)存,再低內(nèi)存消耗中解析鸳玩。但是可能出現(xiàn)類型混淆。確保類型不被混淆需要設(shè)置為False颓帝。或者使用dtype 參數(shù)指定類型吕座。注意使用chunksize 或者iterator 參數(shù)分塊讀入會(huì)將整個(gè)文件讀入到一個(gè)Dataframe瘪板,而忽略類型(只能在C解析器中有效)
分塊處理 chunksize
想使用分塊處理,只需在read_csv()方法中加入chunksize=100000(這里假設(shè)每一塊有100000行)
df=pd.read_csv('data.csv',header=None,chunksize=100000)
然后使用for循環(huán)去每塊每塊地去處理(chunk的type是DataFrame):
for chunk in df:
print(chunk)
篩選某一列數(shù)據(jù)長(zhǎng)度為9的所有數(shù)據(jù)
df = pd.read_csv('tablename.csv', low_memory=False, dtype=str)
df = df[df['col_name'].str.len() == 9]
dtype=str 這個(gè)設(shè)置有必要
去重
df.drop_duplicates(subset='mmsi', keep='first', inplace=True)
篩選并刪除
df.drop(df[df['mmsi'].str.len() != 9].index, inplace=True)
df[df['mmsi'].str.len() != 9]是篩選條件
df[df['mmsi'].str.len() != 9].index獲取索引
保存
df.to_csv('test.csv', index=False)
創(chuàng)建一個(gè)空的DataFrame
df = pd.DataFrame([])
創(chuàng)建一個(gè)帶有列名的DataFrame
title=['mmsi' ,'statictime' ,'imo_no']
df = pd.DataFrame(columns=title)
df.to_csv('test.csv', index=False)
CSV寫入追加模式锣枝,并且不帶表頭
df.to_csv('test.csv', mode='a', index=False, header=None)
獲取列名
df = pd.read_csv('title.csv')
cols_name=[column for column in df]
大數(shù)據(jù)給pandas提速可以使用modin
我當(dāng)前使用的是WIN10系統(tǒng)撇叁,由于不然使用依賴庫(kù)ray畦贸;
所以就不做測(cè)試了
modin的使用可參考:
http://www.reibang.com/p/5f6b7019e5a1