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 | 计算百分数变化 |