Pandas详解

编程入门 行业动态 更新时间:2024-10-17 23:33:40

Pandas<a href=https://www.elefans.com/category/jswz/34/1770044.html style=详解"/>

Pandas详解

Pandas 的数据结构:Pandas 主要有 Series(一维数组),DataFrame(二维数组),Panel(三维数组),Panel4D(四维数组),PanelND(更多维数组)等数据结构。其中 Series 和 DataFrame 应用的最为广泛。

  • Series 是一维带标签的数组,它可以包含任何数据类型。包括整数,字符串,浮点数,Python 对象等。Series 可以通过标签来定位。
  • DataFrame 是二维的带标签的数据结构。我们可以通过标签来定位数据。这是 NumPy 所没有的。

创建 Series 数据类型的三种方法

1. 从列表创建 Series

arr = [0, 1, 2, 3, 4]
s1 = pd.Series(arr) # 如果不指定索引,则默认从 0 开始
s1

2. 从加入索引创建 Series

import numpy as np
n = np.random.randn(5) # 创建一个随机 Ndarray 数组
index = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
s2 = pd.Series(n, index=index)
s2

3.从字典创建 Series

d = {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5}
s3 = pd.Series(d)
s3

Series 基本操作

>1.修改索引操作
>s1.index = ['A', 'B', 'C', 'D', 'E']  # 修改后的索引>2.纵向拼接
>s4 = s3.append(s1)  # 将 s1 拼接到 s3>3. Series 按指定索引删除元素
>s4 = s4.drop('e')  # 删除索引为 e 的值>4.按索引修改数值
>s4['A'] = 6  # 修改索引为 A 的值 = 6>5.Series 按指定索引查找元素
>s4['B']>6.Series 切片操作(例如对s4的前 3 个数据访问)
>s4[:3]
  •  

Series 运算操作

>1.加法(Series 的加法运算是按照索引计算,如果索引不同则填充为 `NaN`(空值))
>s1.add(s2)>2.减法
>s1.sub(s2)>3.乘法
>s1.mul(s2)>4.除法
>s1.div(s2)>5.求中位数
>s1.median()>6.求最大值
>s1.max()>7.求和
>s1.sum()
  •  

创建 DataFrame 数据类型

1. 通过 NumPy 数组创建 DataFrame(三个list,分别为值,索引,列名)

dates = pd.date_range('today', periods=6)  # 定义时间序列作为 index
num_arr = np.random.randn(6, 4)  # 传入 numpy 随机数组
columns = ['A', 'B', 'C', 'D']  # 将列表作为列名
df1 = pd.DataFrame(num_arr, index=dates, columns=columns)
df1
  •  

2.通过字典来创建DataFrame

data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'],'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3],'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1],'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
df2 = pd.DataFrame(data, index=labels)
df2

DataFrame 基本操作

>1.查看前5个值和后三个值
>df2.head()
>df2.tail(3)>2.查看列名,值,以及索引
>df2.columns
>df2.values
>df2.index>3.查看统计数据
>df2.describe()>4.转置操作
>df2.T>5.通过标签查询
>df2['age',’animal'.......]多列查询>6.按行查询
>df2.iloc[1:3]  # 查询 2,3 行>7.按照坐标查询
>df3.iat[1,0]  #2行1列的数据>8.按照标签和索引进行查询
>df3.loc['f','age']   #f行,标签为age的数据>9.添加列数据(创建一个series,然后添加)
>num = pd.Series([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], index=df3.index)
>df3['No.'] = num  # 添加以 'No.' 为列名的新数据列>10.丢弃数据
>data.drop('m1',axis=1) #相当于delete table a where yid='m1'
>data.drop(['a','c'])  #相当于delete table a where xid='a' or xid='c'
>df5.dropna(how = 'any')  #删除缺失值所在的行>11.缺失值处理
>df4.fillna(value=3)>12.条件查找 df['条件']
>df[df['age'] > 3]
>df[(df['animal'] == 'cat') & (df['age'] < 3)] 
>df3[df3['animal'].isin(['cat', 'dog'])]>13.行列索引切片
>df.iloc[2:4, 1:3]   #2-4行切片,1-3列切片>14.排序操作
>df.sort_values(by=['age', 'visits'], ascending=[False, True])>15.DataFrame 多值替换
>df['priority'].map({'yes': True, 'no': False})  #yes替换为True,no为False>16.分组操作
>df4.groupby('animal').sum()     
  •  

DataFrame 文件操作

>1.CSV 文件写入
>df3.to_csv('animal.csv')>2.CSV 文件读取
>df_animal = pd.read_csv('animal.csv')>3.Excel 写入操作
>df3.to_excel('animal.xlsx', sheet_name='Sheet1')>4.Excel 读取操作
>pd.read_excel('animal.xlsx', 'Sheet1', index_col=None, na_values=['NA'])>5.求中位数
>s1.median()>6.求最大值
>s1.max()>7.求和
>s1.sum()

更多推荐

Pandas详解

本文发布于:2024-03-09 01:41:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1723270.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:详解   Pandas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!