内容简介:Pandas 库基于 NumPy 构建,为 Python 编程语言提供易于使用的数据结构和数据分析工具。使用以下约定导入 Pandas能够保存任何数据类型的一维标记数组
Pandas 库基于 NumPy 构建,为 Python 编程语言提供易于使用的数据结构和数据分析工具。
使用以下约定导入 Pandas
import pandas as pd 复制代码
帮助
help(pd.Series.loc) 复制代码
Pandas 数据结构
序列(Series)
能够保存任何数据类型的一维标记数组
s = pd.Series([1, 3, 5, 7], index=['天', '地', '玄', '黄']) 复制代码
# 左侧一列为索引 s 复制代码
天 1 地 3 玄 5 黄 7 dtype: int64
数据框(DataFrame)
不同类型列的二维标记数据结构,类似 Excel 表格
上面一行为列名
左侧一列为索引
- | 姓 | 名 | 民族 | 姓别 | 年龄 |
---|---|---|---|---|---|
1 | 贾 | 小武 | 汉 | 男 | 3 |
2 | 贾 | 小久 | 汉 | 男 | 1 |
3 | 张 | 小鸭 | 汉 | 女 | - |
data = {'姓': ['贾', '贾', '张'], '名': ['小武', '小久', '小鸭́'], '民族': ['汉', '汉', '汉'], '年龄': [3, 1, None]} 复制代码
data 复制代码
{'姓': ['贾', '贾', '张'], '名': ['小武', '小久', '小鸭́'], '民族': ['汉', '汉', '汉'], '年龄': [3, 1, None]}
df = pd.DataFrame(data, columns=['姓', '名', '年龄']) 复制代码
df 复制代码
- | 姓 | 名 | 民族 | 姓别 | 年龄 |
---|---|---|---|---|---|
1 | 贾 | 小武 | 汉 | 男 | 3 |
2 | 贾 | 小久 | 汉 | 男 | 1 |
3 | 张 | 小鸭 | 汉 | 女 | - |
文件 I / O
读写 CSV
pd.read_csv('file.csv', header=None, nrows=5) df.to_csv('myDataFrame.csv') 复制代码
读写 Excel
pd.read_excel('file.xlsx') pd.to_excel('dir/myDataFrame.xlsx', sheet_name='Sheet1') xlsx = pd.ExcelFile('file.xls') df = pd.read_excel(xlsx, 'Sheet1') 复制代码
读取数据库
from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:') pd.read_sql("SELECT * FROM my_table;", engine) pd.read_sql_table('my_table', engine) pd.read_sql_query("SELECT * FROM my_table;", engine) 复制代码
read_sql() 是 read_sql_table() 和 read_sql_query() 的便捷包装器
pd.to_sql('myDf', engine) 复制代码
选择
获取
# 获取 1 个数据 s['天'] 复制代码
1
# 获取 DataFrame 的子集 df[1:] 复制代码
选择,布尔索引 & 设置
位置
按行和列选择单个值
df.iloc[[0], [1]] 复制代码
df.iat[0, 1] 复制代码
'小武'
标签
按行和列标签选择单个值
df.loc[0, '姓'] 复制代码
'贾'
df.at[0, '姓'] 复制代码
'贾'
布尔索引
s[~(s > 1)] 复制代码
天 1 dtype: int64
s[(s < -1) | (s > 2)] 复制代码
地 3 玄 5 黄 7 dtype: int64
df[df['年龄']>1] 复制代码
设置
将序列 s 的索引 '宇' 设置为 9
s['宇'] = 9 s 复制代码
天 1 地 3 玄 5 黄 7 宇 9 dtype: int64
删除(dropping)
从行中删除值(axis = 0)
s.drop(['天', '地']) 复制代码
玄 5 黄 7 宇 9 dtype: int64
从列中删除值(axis = 1)
df.drop('姓', axis=1) 复制代码
排序和排名
按轴标签排序
df.sort_index() 复制代码
按轴的值排序
df.sort_values(by='年龄') 复制代码
从小到大 排序 的下标
df.rank() 复制代码
检索 Series / DataFrame 信息
基本信息
df = pd.DataFrame([[1, 2], [4, 5], [7, 8]], index=['cobra', 'viper', 'sidewinder'], columns=['max_speed', 'shield']) 复制代码
(行,列)
df.shape 复制代码
(3, 2)
描述索引
df.index 复制代码
Index(['cobra', 'viper', 'sidewinder'], dtype='object')
描述 DataFrame 列信息
df.columns 复制代码
Index(['max_speed', 'shield'], dtype='object')
DataFrame 信息
df.info() 复制代码
非 NA 值的数量
df.count() 复制代码
max_speed 3 shield 3 dtype: int64
摘要
总和
df.sum() 复制代码
max_speed 12 shield 15 dtype: int64
累积值
df.cumsum() 复制代码
最小值
df.min() 复制代码
max_speed 1 shield 2 dtype: int64
最大值
df.max() 复制代码
max_speed 7 shield 8 dtype: int64
最小索引值
df.idxmin() 复制代码
max_speed cobra shield cobra dtype: object
最大索引值
df.idxmax() 复制代码
max_speed sidewinder shield sidewinder dtype: object
摘要统计
df.describe() 均值 ```python df.mean() 复制代码
max_speed 4.0 shield 5.0 dtype: float64
中位数
df.median() 复制代码
max_speed 4.0 shield 5.0 dtype: float64
应用函数
f = lambda x: x*2 复制代码
应用函数
df.apply(f) 复制代码
按元素应用函数
df.applymap(f) 复制代码
数据对齐
内部数据对齐
值 NA 在不重叠的索引中引入
s3 = pd.Series([7, -2, 3], index=['玄', '黄', '宇']) 复制代码
s + s3 复制代码
地 NaN 天 NaN 宇 12.0 玄 12.0 黄 5.0 dtype: float64
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。