pyhton中pandas数据分析模块快速入门(非常容易懂)
//2019.07.16
python中pandas模块应用
1、pandas是python进行数据分析的数据分析库,它提供了对于大量数据进行分析的函数库和各种方法,它的官网是http://pandas.pydata.org/;
2、对于pandas数据分析模块的应用主要包括:数据结构的定义,对于数据表格的基础操作大全、数据文件的读入与导出,数据的切片与拼接、表中数据的提取与选择、数据统计方面的应用、缺失数据处理、数据表格的拼接、数据的拷贝与设置等
3、pandas各个模块应用详细代码其标注如下所示:
import pandas as pd #输出数据分析pandas模块
import numpy as np
import scipy.linalg as lg
s=pd.Series([i*2 for i in range(1,11)])
print(type(s))
dates=pd.date_range("20170301",periods=8)
df=pd.DataFrame(np.random.randn(8,5),index=dates,columns=list("ABCDE")) #输出表格格式定义,行属性和列属性1-1
print(df)
df2=pd.DataFrame({"A":1,"B":pd.Timestamp("20170301"),"C":pd.Series(1,list(range(4)),dtype="float32"),"D":np.array([3]*4,dtype="float32"),"E":pd.Categorical(["police","student","teacher","doctor"])})
#定义表格个行属性及其数据结构,1-2
print(df2)
#对于表格的基础操作
print(df.head(3)) #前三行
print(df.tail(3)) #后三行
print(df.index) #打印每一行属性
print(df.values) #以矩阵的形式打印出数据结构里面的数据行列(除去表格第一行和第一列的属性规定)
print(df.sort_index(axis=1,ascending=False)) #将表格行属性进行倒序排列
print(df.describe()) #输出数据的简单描述和分析(包括数量、最小值,最大值,平均数等)
#Select数据的切片
print(df["B"]) #输出某一列
print(df[:3]) #输出前几行
print(df["20170301":"20170304"]) #从某一行到某一行
print(df.loc[dates[0]])
print(df.loc["20170301":"20170304","B":"D"])
a=df.loc["20170301":"20170304","B":"D"]
print(a)
print(df.at[dates[0],"C"])
print(df)
#采用下标提取表格中的相应的数据
print(df.iloc[1:3,2:4])
print(df.iloc[1,4])
print(df.iat[1,4]) #条件判断语句输出
print(df[df.B>0][df.A<0]) #
print(df[df>0])
print(df[df["E"].isin([1,2])]) #set设置改变表格中的一些数据
s1=pd.Series([1,2,3,4,5,6,7,8],index=pd.date_range("20170301",periods=8)) #定义一组新的数据
df["F"]=s1 #在原来的表格里面增加一列数据
print(df)
df.at[dates[0],"A"]=100 #利用属性来设置表格里面的数据
print(df)
df.iat[0,0]=10000 #利用下标设置表格里面的数字
print(df)
df.loc[:,"D"]=np.array(range(10,18)) #设置表格里面D的新数据为该数组里的字符串
print(df)
#表格数据的拷贝和改变
df2=df.copy()
df2[df2>0]=-df2 #据条件语句重新设置表格里面的新的数据,使得其其为负数集合
print(df2) #Missing Values缺失值处理
df1=df.reindex(index=dates[:4],columns=list("ABCD")+["G"])
df1.loc[dates[0]:dates[1],"G"]=1
print(df1)
print(df1.dropna()) #第三行和第四行除去(除去缺失数据的行)
print(df1.fillna(value=2)) #对表格中所缺失的数据进行整体赋值 # Statistic统计方面的应用
print(df)
print(df.mean())
print(df.var())
s=pd.Series([1,2,3,np.nan,5,7,2,5],index=dates)
print(s)
print(s.shift(2)) #表格每列里面的数据向下平移2行,并且后面的数据不会补到前面,前面的数据直接变为空值
print(s.diff()) #求取两行数据之间的差值
print(s.value_counts()) #统计出一组数据中各个数据的个数
print(df)
print(df.apply(np.cumsum))#每行数据之间的累加值表格
print(df.apply(lambda x:x.max()-x.min())) #输出每一行数据中的最大减最小数值
for i in range(0,6):
s=df.iloc[0:8,i]
print(s.value_counts()) #输出各个列数据中每个元素的个数 #表格拼接
pieces=[df[:3],df[-3:]] #先按照自己的要求位置放在一起
print(pd.concat(pieces)) #表格拼接工作
left=pd.DataFrame({"key":["x","y"],"value":[1,2],"name":["yanjiangyi","yanjiangdi"]})
right=pd.DataFrame({"key":["x","z"],"value":[3,4],"name":["yanjiangyi","yanjiangdi"]})
print(left)
print(right)
#对于不同的表格提取某一属性(key属性)里面相同的元素所在行的数据融合(how代表融合方式,on代表以哪个属性为主)
print(pd.merge(left,right,on="key",how="left"))
print(pd.merge(left,right,on="key",how="inner"))
print(pd.merge(left,right,on="key",how="outer"))
print(pd.merge(right,left,on="key",how="outer"))
df3=pd.DataFrame({"A":list("abcb"),"B":[0,1,2,1]})
print(df3)
print(df3.groupby("A").sum()) #合并以A属性为主包含的各个元素的总个数 #reshape数据交叉分解:透视表功能
import datetime
df4=pd.DataFrame({"A":["one","one","two","three"]*6,
"B":["a","b","c"]*8,
"C":["foo","foo","foo","bar","bar","bar"]*4,
"D":np.random.randn(24),
"E":np.random.randn(24),
"F":[datetime.datetime(2017,i,1) for i in range(1,13)]+[datetime.datetime(2017,i,15) for i in range(1,13)]
})
print(df4) #python里面的透视表功能函数pd.pivot_table(index,values,columns,aggfunc,fill_value,margins=True),fill_value填充空值,margins=True进行汇总,具体举例如下:
print(pd.pivot_table(df4,values="D",index=["A","B"],aggfunc=np.sum,columns="C"))
print(pd.pivot_table(df4,values="D",index=["A","B"],aggfunc=np.mean,columns="C",fill_value=0,margins=True))
table=pd.pivot_table(df4,values="D",index=["A","B"],aggfunc=np.mean,columns="C") #pandas时间序列讲解(其中freq决定了时间序列变化的频率大小(S-秒,MIN-分钟,H-小时,D-日,M-月,Y-年),如果不写默认为日-D)
t_exam=pd.date_range("20170301",periods=10,freq="MIN")
print(t_exam)
#图表
ts=pd.Series(np.random.randn(1000),index=pd.date_range("20170301",periods=1000))
print(ts)
from pylab import *
import matplotlib.pyplot as plt
ts.plot()
plt.show() #file 数据文件的输入输出操作(主要包括Excel表格和csv表格文件)
import pandas as pd #输出数据分析pandas模块
import numpy as np
from pylab import *
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"]#输出图像的标题可以为中文正常输出
plt.rcParams["axes.unicode_minus"]=False #可以正常输出图线里的负号
df6=pd.read_csv("C:/Users/yan-j/Desktop/e_env2.csv") #数据文件的读操作,写入操作
print(df6)
print(type(df6))
X=df6.iloc[:,0]
Y=df6.iloc[:,1]
print(X)
print(Y)
plt.plot(X,Y,"r",linewidth=0.5,label="原图像")
plt.plot(range(0,330),Y,"g",label="元数据")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("二维图像原来离散点输出")
plt.legend()
print(len(X))
plt.show()
df6.to_csv("C:/Users/yan-j/Desktop/save-test1.csv") #数据文件的保存操作,写出操作(csv文件)
df6.to_excel("C:/Users/yan-j/Desktop/save-test2.xlsx") #数据文件的保存操作,写出操作(Excel文件)
pyhton中pandas数据分析模块快速入门(非常容易懂)的更多相关文章
- python中pandas数据分析基础3(数据索引、数据分组与分组运算、数据离散化、数据合并)
//2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥 ...
- IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据
IdentityServer4 中文文档 -16- (快速入门)使用 EntityFramework Core 存储配置数据 原文:http://docs.identityserver.io/en/r ...
- IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端
IdentityServer4 中文文档 -15- (快速入门)添加 JavaScript 客户端 原文:http://docs.identityserver.io/en/release/quicks ...
- IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity
IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity 原文:http://docs.identityserver.io/en/release ...
- IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问
IdentityServer4 中文文档 -13- (快速入门)切换到混合流并添加 API 访问 原文:http://docs.identityserver.io/en/release/quickst ...
- IdentityServer4 中文文档 -12- (快速入门)添加外部认证支持
IdentityServer4 中文文档 -12- (快速入门)添加外部认证支持 原文:http://docs.identityserver.io/en/release/quickstarts/4_e ...
- IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证
IdentityServer4 中文文档 -11- (快速入门)添加基于 OpenID Connect 的用户认证 原文:http://docs.identityserver.io/en/releas ...
- IdentityServer4 中文文档 -8- (快速入门)设置和概览
IdentityServer4 中文文档 -8- (快速入门)设置和概览 原文:http://docs.identityserver.io/en/release/quickstarts/0_overv ...
- IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API
IdentityServer4 中文文档 -9- (快速入门)使用客户端凭证保护API 原文:http://docs.identityserver.io/en/release/quickstarts/ ...
随机推荐
- 吴裕雄--天生自然PythonDjangoWeb企业开发:解决使用相对路径名导入包中子模块问题
问题 将代码组织成包,想用import语句从另一个包名没有硬编码过的包中导入子模块. 解决方案
- Python数据类型-3 布尔类型
布尔类型 对于错.0和1.正与反,都是传统意义上的布尔类型. 但在Python语言中,布尔类型只有两个值,True与False.请注意,是英文单词的对与错,并且首字母要大写,不能其它花式变型. 布尔值 ...
- LinkedHashMap的用法
1:LinkedHashMap的简介 Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序.此实现与 HashMap 的不同之处在于,后者维护着一个运行于所有条目的双重链接列表.此链接列表定义了迭 ...
- Markdown 语法使用
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,被广泛的应用在博客写 ...
- python学习 —— python3简单使用pymysql包操作数据库
python3只支持pymysql(cpython >= 2.6 or >= 3.3,mysql >= 4.1),python2支持mysqldb. 两个例子: import pym ...
- Django 学习之From组件
一.Form组件介绍 Form组件可以做的几件事情: 1.用户请求数据验证 2.自动生成错误信息 3.打包用户提交的正确信息 4.如果其中有一个错误了,其他的正确这,保留上次输入的内容 4.自动创建i ...
- P3919 【模板】可持久化数组 -初步探究主席树
本篇blog主要是给自己(大家)看的. 感谢longlongzhu123奆佬(此人初二LCT)的指点,使本蒟蒻可以快速开始主席树入门. what is 主席树? $ $主席树这个名字只不 ...
- 还在用逆向工程?太Low了,试试通用Mapper吧!
什么是通用Mapper? 通用mapper 可以极大的方便开发人员进行ORM,提供极其方便的单表增删改查. 什么是通用mapper,一句话简单说,它就是个辅助mybatis极简单表开发的组件.它不是为 ...
- nginx 打印详细请求
log_format main escape=json '{ "@timestamp": "$time_iso8601", ' '"remote_ad ...
- python对ASC码的加减
一般使用这两个函数 sum = ord('A') //结果为65 ord()函数返回值是int 字符要加' '否则会当作变量来看 sum = chr(65) //结果为A 不是char是chr()
