Pandas讀取文本


Pandas在處理千萬行級別的數據中有非常高的實用價值,通過將文本數據讀取加載到內存中,在利用Pandas進行數據處理運算,效率非常高。(Excel表適合處理幾十萬行級別的數據,Pandas則適用於處理千萬級別的數據)。

一般情況下千萬級別的數據動輒在幾個GB以上,因此建議電腦內存在16GB以上為佳。python在處理超過內存能力的大數據時,雖說程序不會中斷,但對運行效率影響很大。

在Pandas數據讀取和處理中一下代碼為常用代碼:

import pandas as pd  '必選,加載pandas
import numpy as np  '通常必選,如產生隨機數
import gc  '可選,用於內存管理
import time  '可選,如用於計時

reader = pd.read_table('file1.txt',header=None,names=['Col_Name1','Col_Name2',...],sep='|',index_col=0)  '加載文件到內存,加載的方式可以通過參數進行靈活控制
reader[列號ID].value_counts().to_csv('文件名.csv')  '類似於excel中的countif,運行效率比excel高出非常多!
reader[列ID號].sum()  '對不同的列進行統計分析

pd.merge(df1,df2,on='MSISDN',how='outer').to_csv('outer.csv',index=False) '合並兩個dataframe,去交集,同時輸出到outer.csv文件,且不輸出索引號。

reader.drop_duplicates([列ID號]).to_csv('文件名.csv')  '將除重后的數據存入單獨文件里 

reader.sort([列ID號], ascending=False,其他條件...)  '按某列值對數據進行排序

reader.loc(reader[列ID號] ==/!=/> '條件值', 其他條件...)

此外,除簡單統計外,Pandas還提供如下統計計算:

count 非 NA 值的數量
describe 針對 Series 或 DF 的列計算匯總統計
min , max  最小值和最大值
argmin , argmax  最小值和最大值的索引位置(整數)
idxmin , idxmax  最小值和最大值的索引值
quantile 樣本分位數(0 到 1)
sum 求和
mean 均值
median 中位數
mad 根據均值計算平均絕對離差
var  方差
std  標准差
skew  樣本值的偏度(三階矩)
kurt  樣本值的峰度(四階矩)
cumsum  樣本值的累計和
cummin , cummax  樣本值的累計最大值和累計最小值
cumprod 樣本值的累計積
diff  計算一階差分(對時間序列很有用)
pct_change 計算百分數變化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM