Pandas 基础

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

内容简介: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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spring Boot实战

Spring Boot实战

[美]克雷格·沃斯 / 丁雪丰 / 人民邮电出版社 / 2016-9 / 59.00元

本书以Spring应用程序开发为中心,全面讲解如何运用Spring Boot提高效率,使应用程序的开发和管理更加轻松有趣。作者行文亲切流畅,以大量示例讲解了Spring Boot在各类情境中的应用,内容涵盖起步依赖、Spring Boot CLI、Groovy、Grails、Actuator。对于Spring Boot开发应用中较为繁琐的内容,附录奉上整理完毕的表格,一目了然,方便读者查阅。一起来看看 《Spring Boot实战》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具