Pandas基础

import numpy as np
import pandas as pd
文件的读取和写入
  • 文件的读取
    pandas可以读取多种文件格式,常见的由csv,excel,txt等
#读取csv
df_csv = pd.read_csv('data/my_csv.csv')
#读取txt
df_txt = pd.read_table('data/my_table.txt')
#读取excel
df_excel = pd.read_excel('data/my_excel.xlsx')
  • 公共参数
    header=None 表示第一行不作为列名
    index_col 表示把某一列或几列作为索引
    parse_dates 表示需要转化为时间的列
    usecols 表示读取列的集合,默认读取所有的列
    nrows 表示读取的数据行数
    【例子】
 pd.read_table('data/my_table.txt', header=None)
pd.read_csv('data/my_csv.csv', index_col=['col1', 'col2'])

只读取col1和col2列

pd.read_table('data/my_table.txt', usecols=['col1', 'col2'])
pd.read_csv('data/my_csv.csv', parse_dates=['col5'])
pd.read_excel('data/my_excel.xlsx', nrows=2)
  • 数据写入
    写入数据时,经常index设置为False
df_csv.to_csv('data/my_csv_saved.csv', index=False)
df_excel.to_excel('data/my_excel_saved.xlsx', index=False)

to_csv可以保存为txt文件,并允许自定义分隔符,‘\t’常用做分隔符

df_txt.to_csv('data/my_txt_saved.txt', sep='\t', index=False)
基本数据结构

pandas有两种基本的数据结构
存储一维 values 的 Series 和存储二维 values 的 DataFrame ,在这两种结构上定义了很多属性和方法

  1. series
    Series由序列的值 data 、索引 index 、存储类型 dtype 、序列的名字 name 四部分组成。
    pandas构造函数:
pandas.Series( data, index, dtype, copy)

在这里插入图片描述

和一些编程语言类似 属性可以通过.来获取

 s = pd.Series(data = [100, 'a', {'dic1':5}],
                 index = pd.Index(['id1', 20, 'third'], name='my_idx'),
                 dtype = 'object',
                 name = 'my_name')
s

例如可以通过.shape来获取序列的长度

s.shape
  1. DataFrame
    DataFrame 在 Series 的基础上增加了列索引
    在这里插入图片描述

#Create a Dictionary of series
d = {'Name':pd.Series(['Tom','James','Ricky','Vin','Steve','Minsu','Jack']),
   'Age':pd.Series([25,26,25,23,30,29,23]),
   'Rating':pd.Series([4.23,3.24,3.98,2.56,3.20,4.6,3.8])}
#Create a DataFrame
df = pd.DataFrame(d)
print ("Our data series is:")
print (df)

结果:

Our data series is:
   Age   Name  Rating
0   25    Tom    4.23
1   26  James    3.24
2   25  Ricky    3.98
3   23    Vin    2.56
4   30  Steve    3.20
5   29  Minsu    4.60
6   23   Jack    3.80
常用基本函数
  1. 汇总函数
    head, tail 函数分别表示返回表或者序列的前 n 行和后 n 行,其中 n 默认为5:
    可以自己设定返回的行数
#返回前两行
df.head(2)
#返回后三行
df.tail(3)
  1. 特征统计函数
  • sum() :计算数据样本的总和(按列计算)
  • mean():计算数据样本的算术平均数
  • var():计算数据样本的方差
  • std():计算数据样本的标准差
  • corr():计算数据样本的Spearman(Pearson)相关系数矩阵
  1. 唯一值函数
    对序列使用 unique 和 nunique 可以分别得到其唯一值组成的列表和唯一值的个数
    value_counts 可以得到唯一值和其对应出现的频数
  2. 替换函数
    replace()方法常用来做批量替换
    replace的基本结构是:df.replace(to_replace, value) 前面是需要替换的值,后面是替换后的值。
  3. 排序函数
    pandas中的sort_values()函数原理类似于SQL中的order by,可以将数据集依照某个字段中的数据进行排序,该函数即可根据指定列数据也可根据指定行的数据排序。
  4. apply方法
    apply 方法常用于 DataFrame 的行迭代或者列迭代
窗口对象

pandas为了处理数字数据,提供了移动窗口函数(rolling()),扩展窗口函数(expanding()),指数加权滑动(ewm()),并且可以在窗口函数上使用合适的统计函数。

  • 滑窗对象
    要使用滑窗函数,就必须先要对一个序列使用 .rolling 得到滑窗对象,其最重要的参数为窗口大小 window 。
s = pd.Series([1,2,3,4,5])
roller = s.rolling(window = 3)
roller
  • 扩张窗口
    扩张窗口又称累计窗口,可以理解为一个动态长度的窗口,其窗口的大小就是从序列开始处到具体操作的对应位置,其使用的聚合函数会作用于这些逐步扩张的窗口上。设序列为a1, a2, a3, a4,则其每个位置对应的窗口即[a1]、[a1, a2]、[a1, a2, a3]、[a1, a2, a3, a4]。其窗口长度是不断扩大的。
s = pd.Series([1, 3, 6, 10])
s.expanding().mean()
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值