pandas读取数据:
import pandas as pd
dataPath = 'test.csv'
data = pd.read_csv(dataPath , sep=',', iterator=False,encoding='utf-8', header=None)
# 其中dataPath 代表读取的文件的路径,
# sep代表文件每行分隔的符号
# iterator代表文件读取时以迭代的方式进行,设置为True可以减少内存占用
# encoding代表读取文件的字符编码格式
# header设置为None代表数据中没有列名,读取时可以忽略掉列名,默认为infer,其将第一行作为标签
pandas查看数据:
print data.head() # 查看数据的前5行,括号中可以填数字,代表查看的行数
print data.tail() # 查看数据的后5行,括号中可以填数字,代表查看的行数
print data.shape # 查看data的大小,结果如(1024,10)
pandas删除行、列:
# 删除行,删除了data中的第16、17行
data.drop([16,17],inplace=True) # inplace设置为True则原数据也改变
# 等价于
data.drop(data.index[[16,17]],inplace=True)
# 删除列,删除data中标签为age的列
del data['age']
# 等价于下式,均可添加inplace参数
data.drop(['age'],axis=1)
# 删除方法详见 http://www.jianshu.com/p/67e67c7034f6
pandas排序:
data = data.sort_values(by=['age', 'name']) # 根据by中的参数名进行排序
pandas合并列表
data_12 = pd.merge(data1, data2, on=['age', 'name'], how='outer')
# 将data1和data2两个DataFrame类型的进行合并,on中代表合并时的主键,
# how中可选参数为outer、inner
# outer则得到并集,空缺部分为nan,inner为交集
pandas采样
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
# 例子如下
import pandas as pd
df.sample(n=20000)
n 是要抽取的行数。(例如 n=20000 时,抽取其中的 2W 行)
frac 是抽取的比列。(有一些时候,我们并对具体抽取的行数不关系,我们想抽取其中的百分比,这个时候就可以选择使用 frac,例如 frac=0.8,就是抽取其中 80%)
replace 抽样后的数据是否代替原 DataFrame()
weights 这个是每个样本的权重,具体可以看官方文档说明。
random_state 随机数
pandas保存数据:
data.to_csv('baseinfo2.csv', index=False)
# 将data保存到baseinfo2.csv中
# 其中index设置为False为了防止写入文件时写入索引。