【学习笔记】pandas库——#1.数据结构

本文详细介绍了Python中pandas库的基础知识,包括其与numpy的配合使用,主要数据结构Series和DataFrame的创建、操作、索引管理,以及数据排序、算术和逻辑运算、统计分析等关键功能。
摘要由CSDN通过智能技术生成

pandas库就是python中用于数据挖掘的库。包含丰富的工具包。

要调用pandas库,使用以下代码,由于pandas库经常和numpy库配套使用,故还应该调用numpy库。

import pandas as pd
import numpy as np

数据结构

要学习pandas,首先要了解pandas的数据结构。pandas的数据结构主要有两种。

Series

        类似于表中的一列(column)类似于一维数组,可以保存任何数据类型,由索引(index)和列组成。

创建
pd.Series( data, index, dtype, name, copy)

参数说明:

data:一个指向一组数据的指针(Ndarray类型)。
index:数据索引标签,如果不指定,默认从 0 开始,用一个Ndarray对象来指定。
dtype:数据类型,默认会自己判断。
name:设置名称。
copy:拷贝数据,默认为 False。

# 通过数组创建Series
s = pd.Series([6, 5, 2], index=['x', 'y', 'z'])
print(s)
x    6
y    5
z    2

除了通过数组外,在pd.Series函数中用放入字典参数,可以自动为数据指定索引值。

操作
print(SeriesObject["index"])

即根据索引来使用Series对象的数据。

排序

指定升降序

data.sort_values(ascending = True)
Dataframe

       DataFrame 是一个表格型的数据结构,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典。
        行索引就是表明不同行的索引,叫index,axis=0
        列索引就是表明不同列的索引,叫columns,axis=1

创建
pd.DataFrame(data,index=[index],columns=[columns])

以上函数创建了一个数据为data,行索引为index,列索引为columns的DataFrame结构

dataframe方法
print(data.shape)    #表示几行几列
print(data.index)    #输出行索引
print(data.columns)  #输出列索引
print(data.values)   #输出Dataframes的值
print(data.T)        #Dataframes转置
索引设置操作

1.索引设置
        dataframe不支持单独修改某个索引,必须修改全部索引。

index_row2 = [一组数据]
data.index = index_row2
print(data)

2.重新设置索引

print(data.reset_index(drop=False))

以上函数会将索引重新设置为数值,并将原索引转变为正常的列。

3.以某列值为新的索引

set_index(keys,drop=True)

keys:列索引名称
drop:drop为真时抛弃原来索引这一列。

基本数据操作

1.索引重命名

rename(mapper=None,inplace=False)

mapper:实际编程时为columns或index,传入一个映射体,可以是字典或函数。
inplace:默认为False,不改变自身数据,返回一个新的dataframe

2.通过索引操作数据

  • 直接使用索引(先列后行)
    不支持区间访问(即[:]形式的访问)
  • 结合loc或iloc使用索引(先行后列)
print(data.loc['股票3']['2022-02-03']) #通过名称
print(data.iloc[1, 1])    #通过下标
print(data.iloc[:3, :4])  #区间访问
  • 可以使用以上两个函数进行组合索引访问

例如:

print(data.loc[data.index[:5], ['2022-02-01', '2022-02-02']])
print(data.iloc[0:5, data.columns.get_indexer(['2022-02-01', '2022-02-02'])])

以上两个函数都截取了数据的5行和2列

排序

1.对内容进行排序
        指定一个或多个关键字,并指定升或降序。关键字优先级从先到后依次减少。ascending=False为降序

print(data.sort_values(by='2022-02-01', ascending=False))
print(data.sort_values(by=['2022-02-01', '2022-02-02'], ascending=False))

2.对索引进行排序

        只需指定升降序

print(data.sort_index(ascending=False))
运算
算术运算

        和一般数据运算类似。对于DataFrame中的某个数据(用dat表示),我们可以采用以下方法进行算术运算。

dat.__add__(<num>)    #加法
dat.__sub__(<num>)    #减法
dat.__mul__(<num>)    #乘法
dat.__divmod__(<num>) #得到商和余数
dat.__mod__(<num>)    #求模
dat.__abs__()         #求绝对值
逻辑运算

逻辑运算不仅可以返回运算结果,还可以将逻辑运算作为筛选条件进行数据筛选。

print(df)
print(df['sale'] > 50)      #计算sale的各个数据>50的结果,返回一个Series结构。
print(df[df['sale'] > 50])  #筛选“sale“大于50的元组,返回一个DataFrame结构

逻辑运算函数
        1.query函数       

#query函数通过条件字符串进行查询符合条件的数据
data.query(expr)

        以上代码根据条件字符串返回一个符合条件的DataFrame结构。条件字符串示例:'sale > 35 & sale < 80'表示sale这列在35至80之间。

        2.isin函数

#isin函数对数据进行逻辑判断,判断数据是否在指定的values中
data[col].isin([数据])

        以上代码返回一个Series结构,如果该行对应的数据符合条件,那么以该行行数为索引的数据值为True,反之为False。

统计运算

describe() 综合分析,统计数量count,平均值mean,标准差std,最大值,最小值等。

data.describe()

此外还有很多描述性统计函数,这里浅举几个例子。

count()    #统计某个非空值的数量
sum()      #求和
mean()     #求均值
median()   #求中位数
mode()     #求众数
std()      #求标准差
min()      #求最小值
max()      #求最大值
自定义运算
data.apply(func,axis)

        func是自定义运算函数
        axis是对行(列)运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值