达内python笔记_python数据分析之pandas学习笔记

在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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值