+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2019-08(47)

2019-09(90)

2019-10(13)

2019-11(9)

2019-12(19)

数据分析-pandas总结

发布于2020-08-29 10:16     阅读(1024)     评论(0)     点赞(29)     收藏(3)


0

1

2

3

4

5

6

在这里插入图片描述

一、Pandas简介

       在Python中,pandas是基于NumPy数组构建的,使数据预处理、清洗、分析工作变得更快更简单。pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据。
       Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

       pandas有两个主要数据结构:Series和DataFrame。

二、Series对象

       Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成,即index和values两部分,可以通过索引的方式选取Series中的单个或一组值。

import pandas as pd
# 通过传递一个list对象来创建一个Series
sel =  pd.Series(data = [1,2,3,4], index = list('abcd'))
print(sel)
# 获取内容
print('获取内容:',sel.values)
# 获取索引
print('获取索引:',sel.index)
# 获取索引和值对
print('获取索引和值对:',list(sel.iteritems()))

在这里插入图片描述

三、DataFrame对象

       DataFrame是一种二维的数据结构,非常接近于电子表格或者类似 mysql 数据库的形式。它的竖行称之为 columns,横行跟前面的 Series 一样,称之为 index,也就是说可以通过 columns 和 index 来确定一个主句的位置。

1.创建DataFrame对象

data = {'语文':[110,89,90,107,78],
       '数学': [132,120,114,96,101],
       '英语':[113,132,90,94,81],
       '物理':[90,89,78,95,83],
       '化学':[84,89,90,87,75]}

df = pd.DataFrame(data,index=['张三', '李四', '王五', '李华', '李明'])
df

在这里插入图片描述

2.查看DataFrame对象

查看DataFrame中头部和尾部:
#1.查看DataFrame中头部行
display(df.head())
#2.查看DataFrame尾部的行
display(df.tail(3))

在这里插入图片描述

查看不同列的数据类型:
#查看不同列的数据类型
df.dtypes

在这里插入图片描述

显示索引、列和底层的numpy数据:
print(df.index)
print(df.columns)
df.values

在这里插入图片描述

数据的快速统计汇总:
# describe()函数对于数据的快速统计汇总,
# 统计每个索引的数据量、最小值、最大值等
df.describe()

在这里插入图片描述

对数据的转置:
df.T

在这里插入图片描述

3.选择数据

选择一个单独的列,将会返回一个Series:
df['语文']

在这里插入图片描述

通过[]进行选择,将会对行进行切片:
df[2:4]

在这里插入图片描述

通过标签进行选择数据:
df.loc[:,['语文','化学','数学']]  #提取-'语文','化学','数学'三列的数据

在这里插入图片描述

截取行并对列进行切片:
df.loc['李四':'李华',['语文','化学','数学']]

在这里插入图片描述

截取指定行和指定列:
df.loc[['李四','张三'],['语文','化学','数学']]

在这里插入图片描述

通过位置选择:
# 通过传递数值进行位置选择(选择的是行)
df.iloc[3]

在这里插入图片描述

通过数值进行切片:
df.iloc[3:4,3:4]   #对第3行,第3列的数据切片截取

在这里插入图片描述

通过指定一个位置进行选择数据:
df.iloc[[1,2,4],[0,2]]    #选取表中位置 第1,2,4行,语文和英语列的数据

在这里插入图片描述

布尔索引:
#通过条件进行判断,并返回相应布尔值
df['语文']>90

在这里插入图片描述

4.缺省值处理

在pandas中,使用np.nan来代替缺失值,这些值将默认不会包含在计算中
data = {'语文': [110,np.nan,90,107,78], '数学': [np.nan,120,114,96,101]}
df = pd.DataFrame(data)
df

在这里插入图片描述

去掉包含缺省值的行
df.dropna(how='any')

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020082716370795.jpg#pic_left

对缺省值进行填充
df.fillna(value=0)

在这里插入图片描述

对数据进行布尔填充
#对数据进行布尔填充(将全部数据进行替换成布尔值)
pd.isnull(df)

在这里插入图片描述

5.合并

df = pd.DataFrame(np.random.randn(4,4),columns=list('ABCD'))
print(df)
s = df.iloc[2]   #将第3行的数据append到最后一行
df.append(s,ignore_index=True)  

在这里插入图片描述

导入和保存数据

# 写入csv文件
df.to_csv('data.csv')
# 从csv文件中读取
pd.read_csv('data.csv')

在这里插入图片描述

# 写入excel文件
df.to_excel('data.xlsx',sheet_name='Sheet1')
# 从excel文件中读取
pd.read_excel('data.xlsx','Sheet1')
# 写入HDF5存储
df.to_hdf('data.h5','df')
# 从HDF5存储中读取
pd.read_hdf('data.h5','df')
使用matplotlib生成数据分析图片并保存:
import matplotlib.pyplot as plt
#解决中文显示问题
from pylab import mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]

df.T.plot()
plt.savefig('./p2t.png')

在这里插入图片描述

原文链接:https://blog.csdn.net/weixin_45104240/article/details/108253861

0

1

2

3

4



所属网站分类: 技术文章 > 博客

作者:dfh8374

链接: https://www.pythonheidong.com/blog/article/497582/a7b73913ca6f77dd6218/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)