Python的科学计算库Pandas(潘大师)的使用

Pandas的核心数据结构:Series和DataFrame

Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集,也是我们后期分析案例的神器。它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,也就是:

  • 分别代表一维的序列和二维的表结构
  • 基于这两种结构:Pandas可以对数据进行导入、清洗、处理、统计和输出

Series 序列

  • 1.Series是个固定长度的字典序列
    • 与字典结构区别:存储的时候相当于两个ndarray,而字典结构里面元素的个数是不确定的。
  • 2、两个基本属性:index和values
    • index默认是递增的整数序列;0,1,2,3…,也可以是自定义的序列:index=[‘a’,‘b’,‘c’,‘d’]。

pandas 的Series的使用实例:

import pandas as pd
from pandas import Series, DataFrame
x1 = Series([1,2,3,4]) # 使用默认的方式指定index
x2 = Series(data=[1,2,3,4], index=['a','b','c','d']) # 使用指定的方式指定index
print(x1)
print(x2) # 最后会输出数据类型
'''
# 运行结果:
0    1
1    2
2    3
3    4
dtype: int64
a    1
b    2
c    3
d    4
dtype: int64
'''
# 使用字典的方式创建Series
d = {
   'a':1, 'b':2, 'c':3, 'd':4}
x3 = Series(d)
print(x3)
'''
运行结果
a    1
b    2
c    3
d    4
dtype: int64
'''

DataFrame 类型数据结构类似于数据库表

(遵循的步骤为:数据探索->数据清洗->数据统计->结果可视化)

  • 包含行索引和列索引,DataFrame可看做由相同索引的Series组成的字典类型。

例如输出同学的考试成绩

import pandas as pd
from pandas import Series, DataFrame
data = {
   'Chinese': [66, 95, 93, 90,80],
        'English': [65, 85, 92, 88, 90],
        'Math': [30, 98, 96, 77, 90]}
# 使用默认的索引0,2,3,4...,对应的列索引为Chinese,English,Math
df1= DataFrame(data)
# 指定行索引为index,列索引为columns(里面的科目是可以换位置的)
df2 = DataFrame(data, index=['ZhangFei', 'GuanYu', 'ZhaoYun', 'HuangZhong', 'DianWei'], 
                columns=['English', 'Math', 'Chinese'])
print(df1)
print(df2)
'''
# 运行结果:
   Chinese  English  Math
0       66       65    30
1       95       85    98
2       93       92    96
3       90       88    77
4       80       90    90
            English  Math  Chinese
ZhangFei         65    30       66
GuanYu           85    98       95
ZhaoYun          92    96       93
HuangZhong       88    77       90
DianWei          90    90       80
'''

数据的导入

假设现在有数据如下图:
在这里插入图片描述

可以使用Pandas导入导出xlsx,csv文件
导入(读取)

  • 方式一:读入xlsx:pd.read_excel('data.xlsx')
  • 方式二:读入csv:pd.read_csv('data.xlsx')

导出(保存)

  • 方式一:保存xlsx:pd.to_excel('data.xlsx')
  • 方式二:保存csv:pd.to_csv('data.xlsx')

例如:

import pandas as pd
from pandas import Series, DataFrame
# 方式一:读入xlsx
score = DataFrame(pd.read_excel('data.xlsx'))
score.to_excel('data1.xlsx')
print(score)
'''
运行结果:
   Unnamed: 0  English  Math  Chinese
0    ZhangFei       65    30       66
1      GuanYu       85    98       95
2     ZhaoYun       92    96       93
3  HuangZhong       88    77       90
4     DianWei       90    90       80
'''
# 注意:1.需要安装xlrd包和openpy包
#       2.需要使用excel创建xlsx文件,否则会包格式错误

需要注意的是:

  • 使用excel文件导入的数据的index是已经规定好的了:从0,1,2,3…这样的顺序往下。当我们再设置, index=[‘ZhangFei’, ‘GuanYu’, ‘ZhaoYun’, ‘HuangZhong’, ‘DianWei’]的时候查找出来的都是NaN,因为这样的索引对应的是没有数据的:
import pandas as pd
from pandas import Series, DataFrame
data = DataFrame(pd.read_excel('data.xlsx'))
df1= DataFrame(data)
df2 = DataFrame(data, index=['ZhangFei', 'GuanYu', 'ZhaoYun', 'HuangZhong', 'DianWei'], 
                columns=['English', 'Math', 'Chinese'])
print(df2)
'''
# 执行的结果
            English  Math  Chinese
ZhangFei        NaN   NaN      NaN
GuanYu          NaN   NaN      NaN
ZhaoYun         NaN   NaN      NaN
HuangZhong      NaN   NaN      NaN
DianWei         NaN   NaN      NaN
'''
  • 当把index去掉之后,或者index=[0,1,2,3,4],同时加上name列字段时候,就可以正常查询出数据,也就是说excel表格默认的索引是从0开始的整数,不能自定义索引。
import pandas as pd
from pandas import Series, DataFrame
data = DataFrame(pd.read_excel('data.xlsx'))
df1= DataFrame(data)
# index可去掉
df2 = DataFrame(data, index=[0,1,2,3,4],
                columns=['name','English', 'Math', 
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值