Python培训
400-996-5531
在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame。
Series 可以看做一个定长的有序字典。基本任意的一维数据都可以用来构造 Series 对象。Series 对象包含两个主要的属性:index 和 values。
DataFrame 是一个表格型的数据结构,它含有一组有序的列
(类似于 index),每列可以是不同的值类型。基本上可以把 DataFrame 看成是共享同一个 index 的Series 的集合。
import pandasfrom pandas import Series,DataFrame#Series 可以看做一个定长的有序字典。基本任意的一维数据都可以用来构造 Series 对象:s = Series(data=[1,3,5,7],index = ['a','b','x','y'])# print(s.index)# print(s.values)a = ['a','b','x','y','z']# print(s.reindex(a))# print(s.reindex(a,fill_value=0))#.reindex() 方法会返回一个新对象,其 index严格遵循给出的参数,# method:{'backfill', 'bfill', 'pad', 'ffill', None}# 参数用于指定插值(填充)方式,当没有给出时,自动用 fill_value 填充,# 默认为 NaN(ffill = pad,bfill = back fill,分别指插值时向前还是向后取值)# print(s.reindex(a,method='ffill'))# print(s.reindex(a,method='bfill'))#DataFrame 是一个表格型的数据结构,它含有一组有序的列(类似于 index),# 每列可以是不同的值类型。# 基本上可以把 DataFrame 看成是共享同一个index 的Series 的集合。# DataFrame 构造器参数为:DataFrame(data=None,index=None,coloumns=None)# data = {'state':['Ohino','Ohino','Ohino','Nevada','Nevada'],# 'year':[2000,2001,2002,2001,2002],# 'pop':[1.5,1.7,3.6,2.4,2.9]}# # print(DataFrame(data,index=['1','2','3','4','5'],columns=['state','year','pop']))# df = DataFrame(data,index=['1','2','3','4','5'],columns=['state','year','pop'])# print(df.values)# print(df.index)# #删除指定轴上的项# print("删前")# print(s)# print(df)# #删除# print("删除后")# print(s.drop('b'))# print(df.drop('5'))# #索引和切片# print(s[:2])# print(df.ix[:2,:2])# #算术运算和数据对齐# m = Series({'a':1,'b':2})# n = Series({'a':1,'c':2})# print(m+n)# print(m-n)# print(m*n)# print(m/n)#函数应用和映射(对某行进行统一操作)#f表示某行中的最大值减去最小值f = lambda x:x.max()-x.min()data = {'x':[0,9,2], 'y':[1,4,7], 'z':[2,5,8]}df = DataFrame(data,index={'a','b','c'},columns={'x','y','z'})# print(df)# print(df.apply(f))#排序和排名print(df.sort_index(axis=1,by=['a','c']))
#统计方法#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 计算百分数变化
pandas的应用一:按条件查询
import pandas#原文件路劲old_path = r'd:\2000W\200W-400W.csv'#打开原文件f = open(old_path,'r',encoding='utf-8')#读取原文件数据data = pandas.read_csv(f)# print(data)#通过索引搜索文件中姓名叫'周文平'的用户,并显示姓名和手机号user_data = data[(data['Name']=='周文平')][['Name','Mobile']]# #输出结果print(user_data)# #通过索引搜索文件中姓名叫'周文平'的用户的所有信息# user_data = data[(data['Name']=='周文平')]# num = int(user_data.describe().ix[0,0])# for i in user_data:# print(user_data)
pandas的应用二:读取一个文件的某几列数据,然后存到另一个新的文件中去
import pandas#原文件路劲old_path = r'd:\2000W\200W-400W.csv'#打开原文件f = open(old_path,'r',encoding='utf-8')#读取原文件数据data = pandas.read_csv(f)# print(data)num = int(data.describe().ix[0,0])# print(num)# print(num)#遍历出所有行# print("---------遍历出所有行-------")# for i in range(num):# record = data.ix[i,:]# print(record)# print(record['Name'])# print(record['CtfId'])# print(record['Mobile'])# print(record['EMail'])# print(record['Birthday'])#创建新文件new_path = r'd:\n.csv'#打开新文件new_file = open(new_path,'w',encoding='utf-8')writer = csv.writer(new_file)writer.writerow(('Name','CtfId','Mobile','EMail','Birthday'))# 存到新文件中for i in range(num): record = data.ix[i,:] Name = record['Name'] CtfId = record['CtfId'] Mobile = record['Mobile'] EMail = record['EMail'] Birthday = record['Birthday'] writer.writerow( (record['Name'],record['CtfId'],record['Mobile'],record['EMail'],record['Birthday']))print("保存完毕")# print(data)# print(data.describe())# print(data.ix[0,:])#提取第二行中的score# re = data.ix[1,:]# print(re['score'])# for i in range(num):# record = data.ix[i,:]# score = record['score']# print(score)#遍历所有行的对应列的值# for i in range(num):# record = data.ix[i,:]# name = record['name']# print(ame)
填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
Copyright © 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有
Tedu.cn All Rights Reserved