PythonPandas的简单使⽤教程
⼀、 Pandas简介
1、Python Data Analysis Library 或 pandas 是基于NumPy 的⼀种⼯具,该⼯具是为了解决数据分析任务⽽创建的。Pandas 纳⼊了⼤量库和⼀些标准的数据模型,提供了⾼效地操作⼤型数据集所需的⼯具。pandas提供了⼤量能使我们快速便捷地处理数据的函数和⽅法。你很快就会发现,它是使Python成为强⼤⽽⾼效的数据分析环境的重要因素之⼀。
2、Pandas 是python的⼀个数据分析包,最初由AQR Capital Management于2008年4⽉开发,并于2009年底开源出来,⽬前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项⽬的⼀部分。Pandas最初被作为⾦融数据分析⼯具⽽开发出来,因此,pandas为时间序列分析提供了很好的⽀持。 Pandas的名称来⾃于⾯板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的⼀个术语,在Pandas中也提供了panel的数据类型。
3、数据结构:
Series:⼀维数组,与Numpy中的⼀维array类似。⼆者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,⽽Array和Series 中则只允许存储相同的数据类型,这样可以更有效的使⽤内存,提⾼运算效率。
Time- Series:以时间为索引的Series。
DataFrame:⼆维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。
Panel :三维的数组,可以理解为DataFrame的容器。
Pandas 有两种⾃⼰独有的基本数据结构。读者应该注意的是,它固然有着两种数据结构,因为它依然是 Python 的⼀个库,所以,Python 中有的数据类型在这⾥依然适⽤,也同样还可以使⽤类⾃⼰定义数据类型。只不过,Pandas ⾥⾯⼜定义了两种数据类型:Series 和 DataFrame,它们让数据操作更简单了。
⼆、Python Pandas的使⽤
修改列数据:
df['price']=df['price'].place('⼈均','') # 删除多余⽂字
df['price']=df['price'].str.split("¥").str[-1] # 分割⽂本串
numpy教程pdf电子书df['price']=df['price'].place('-','0') # 替换⽂本
df['price']=df['price'].astype(int) # ⽂本转整型
切分列数据:
df['kw']=df['commentlist'].str.split().str[0].place("⼝味",'')
df['hj']=df['commentlist'].str.split().str[1].place("环境",'')
df['fw']=df['commentlist'].str.split().str[2].place("服务",'')
注意:pandas中操作如果不明确指定参数,则不会修改原数据,⽽是返回⼀个新对象。
删除列数据:
del df['commentlist']
排序列数据:
df.sort_values(by=['kw','price'],axis=0,ascending=[False,True],inplace=True)
注意:排序前先⽤astype转换正确的类型,如str、int或float
重新设置索引列标签顺序:
打印前⼏⾏数据:
print(df.loc[:,['店铺名称','⼝味','⼈均消费']].head(6))
# 或者 # print(df.iloc[0:6,[1,6,4]]) # 前6⾏(整数)
# 但不能是 # print(df.loc[0:6,['店铺名称','⼝味','⼈均消费']]) # 从索引0到索引6的⾏(对象)
综合⽰例:
图例:
结果:
要求:
(1)对该数据中的comment、price进⾏数据清洗整理,
(2)将commentlist数据拆分为“⼝味”、“环境”和“服务”三列后再进⾏数据清洗整理,
(3)去除commentlist列数据
(4)将此数据按“⼝味”降序、“⼈均消费”升序进⾏排序,
(5)输出排序后前6条数据中的“店铺名称”、“⼝味”和“⼈均消费”三列数据。
代码:
import pandas as pd
ad_csv('spdata.csv',encoding='gbk') #读⼊⽂件,编码为gbk # 注意编码,重要
#对数据进⾏清洗
df['comment']=df['comment'].place('条点评','')
df['price']=df['price'].place('⼈均','')
df['price']=df['price'].str.split("¥").str[-1]
df['price']=df['price'].place('-','0')
df['price']=df['price'].astype(int)
df['kw']=df['commentlist'].str.split().str[0].place("⼝味",'')
df['hj']=df['commentlist'].str.split().str[1].place("环境",'')
df['fw']=df['commentlist'].str.split().str[2].place("服务",'')
del df['commentlist']
#按⼝味降序,⼈均消费升序进⾏排序
df.sort_values(by=['kw','price'],axis=0,ascending=[False,True],inplace=True)
#重新设置列索引标签
print(df.loc[:,['店铺名称','⼝味','⼈均消费']].head(6))
⽅法⼆:
import pandas as pd
ad_csv('spdata.csv',encoding='gbk')
df['comment']=df['comment'].place('条点评','')
df['price']=df['price'].place('⼈均','').place('¥','').place('-','0').place(' ','').astype(int)
df[['kw','hj','fw']]=df['commentlist'].place('⼝味','').place('环境','').place('服务','').str.split(expand=True).astype(float) # expand将普通的列表转为DataFrame对象
del df['commentlist']
df.sort_values(by=['kw','price'],axis=0,ascending=[False,True],inplace=True) # 注意inplace=True
print(df[['店铺名称','⼝味','⼈均消费']].head(6))
注意:df.str.split是列表,加了expand=True之后才是DataFrame对象,或者⽤.str[x]提取某⼀列,注意不是df.str.split()[x]⽽是df.str.split().str[x],前者是对list(⼆维)操作,后者是对DataFrame操作(取某⼀列)
到此这篇关于Python Pandas的简单使⽤教程的⽂章就介绍到这了,更多相关Python Pandas使⽤内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论