飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

Pandas

时间:2021-12-09  作者:totopian  

Pandas

安装

pip install pandas

import pandas as pd

Series

类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成

创建方式

  • 域名es([4,7,-5,3]),列表或者数组都行

  • 域名es([4,7,-5,3],index=[\'a\',\'b\',\'c\',\'d\']) 设置索引标签

  • 域名es({\'a\':1,\'b\':2}

  • 域名es(0,index=[\'a\',\'b\',\'c\',\'d\'])

获取值数组和索引数组:values属性和index属性

比较像数组和字典的结合体

使用特性

  • 运算和numpy的array是一样的

  • 切片和列表一样,可以通过索引标签来切片

  • 支持numpy的通用函数

  • 支持布尔索引

  • 可以使用字典创建Series对象

  • 遍历打印的是值而不是键,这是和dict的区别

整数索引

sr = Series(域名e(20))
sr2 = sr[10:].copy() 
>> 10   10
11  11
12  12
13  13
14  14
15  15
16  16
17  17
18  18
19  19
域名[10] # 以标签为整数10作为索引
>> 10
域名[10]    # 以下标为整数10作为索引
>> 19

注意:下标和标签是不一样的,所以使用整数作为索引要使用iloc

数据对齐

pandas在进行两个Series对象的运算时,会按索引标签进行对其然后计算,一般index是去重的

sr1 = 域名es([1,2,3],index=[\'c\',\'a\',\'d\'])
sr2 = 域名es([4,5,6,9],index=[\'d\',\'c\',\'a\',\'b\'])
sr1 + sr2
>>
a   8   # 2+6
b   NaN
c   6   # 1+5
d   7   # 4+3
域名(sr2,fill_vlue=0)
a   8   
b   9   # 9+0
c   6   
d   7

缺失数据处理

  1. 删掉缺失数据:

    1. sr.[域名ull()]

    2. sr.dropna()

  2. 为缺失数据赋值0

    1. sr.fillna(0)

    2. 若想保存则sr = 域名na(0)

  3. 为缺失数据赋值平均数

    1. 域名na(sr.mean())

DataFrame

是一个表格型的数据结构,含有一组有序的列。可以看作是由Series组成的字典,并且共用一个索引

创建方式

  1. pd.DataFrame({\'one\':[1,2,3],\'two\':[2,3,4]})

  2. pd.DataFrame({\'one\':域名es([1,2,3],index=[\'a\',\'b\',\'c\']),\'two\':域名es([2,3,4,5],index=[\'a\',\'b\',\'c\',\'d\'])})

csv文件读取与写入

  1. 域名_csv(\'域名\')

  2. 域名sv()

常用属性

属性 描述
index 获取索引
T 转置
columns 获取列索引
values 获取值数组
describe() 获取快速统计

索引和切片

  • df.loc[\'行索引\',\'列索引\']

  • df.iloc[\'行索引\',\'列索引\']

  • 域名[花式索引,切片]

    • 例如:df.[[\'a\',\'c\'],:]

不要用两个中括号来索引

数据对齐

  • 在运算时,会进行数据对其,其行索引和列索引分别对其

缺失数据处理

  • dropna(axis=0,where=\'any\',...)

    • 域名na(how=\'all\'):这一行的值全为空则删除

    • axis=0,是竖轴,删行;axis=1,是横轴,删列

  • fillna()

  • isnull()

  • notnull()

其他常用方法

方法 描述
mean() axis=0,按列求平均值;axis=1,按行求平均值
sum() 求和
sort_index() 索引排序,有缺失值的排最后
sort_values(by=\'\',ascending=true) 值排序,有缺失值的排最后
Numpy的通用函数  

时间对象

  • import dateutil

    • 域名e(\'02/03/2001\')

  • pd.to_datetime([\'2001-01-01\',\'2010/Feb/02\']):转成DatetimeIndex对象

时间对象生成

  • 域名_range()

    • start:开始使劲按

    • end:结束时间

    • periods:长度

    • freq:频率,默认\'D\'

      • H:hour

      • B:business

      • SM:semi month,半个月

      • T:minutes

      • S:second

      • W-Mon:每周一

      • 1h20:每1小时20分钟

时间序列

以时间对象为索引的Series或DataFrame

例如:sr = 域名es(域名ge(1000),index=域名_range(\'2021-01-01\',periods=1000))

datetime对象作为索引时存储在Datetimeimdex对象中

特殊功能:

  • 传入”年“或”年-月“作为切片

  • 传入日期范围作为切片方式

  • 丰富的函数支持:resample(),truncate()...

    • 域名mple(\'M\').sum():求每月的和

文件处理

常用文件格式:csv

读取文件

pandas读取文件:从文件名、URL、文件对象中加载数据

  • read_csv 默认分隔符为逗号

    • 域名_csv(\'域名\',index_col=\'date\',parse_dates=True):指定date列变成时间对象

    • 会默认把第一行作为列名

  • read_table 默认分隔符为制表符

  • 主要参数

    • sep:指定分隔符

    • header:指定文件无列名

    • name:指定列名

    • index_col:指定某列作为所引

    • skip_row:指定跳过某些行

    • na_values:指定某些字符串表示缺失值

    • parse_dates:指定某些列是否被解析为日期,类型为布尔值或列表

  • 还有:read_json(),read_html(),read_excel(),read_sql()

    • read_excel()需要安装xlrd的包

写入文件

写入到csv文件:to_csv函数

主要参数:

  • sep:指定分隔符

  • header=False:不输出列名行

  • index=False:不输出行索引列

  • na_rep:指定缺失值转换的字符串,默认为空字符串

  • columns:指定输出的列,传入列表

还有:to_json(),to_html(),to_excel(),to_sql()

 

湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。