Pandas 基础

栏目: 数据库 · 发布时间: 6年前

内容简介:Pandas 库基于 NumPy 构建,为 Python 编程语言提供易于使用的数据结构和数据分析工具。使用以下约定导入 Pandas能够保存任何数据类型的一维标记数组
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

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》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具