内容简介: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
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Smashing Book
Jacob Gube、Dmitry Fadeev、Chris Spooner、Darius A Monsef IV、Alessandro Cattaneo、Steven Snell、David Leggett、Andrew Maier、Kayla Knight、Yves Peters、René Schmidt、Smashing Magazine editorial team、Vitaly Friedman、Sven Lennartz / 2009 / $ 29.90 / € 23.90
The Smashing Book is a printed book about best practices in modern Web design. The book shares technical tips and best practices on coding, usability and optimization and explores how to create succes......一起来看看 《The Smashing Book》 这本书的介绍吧!