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 计算百分数变化
posted @ 2017-04-22 08:11  张建树  阅读(10303)  评论(1编辑  收藏  举报