Pandas 用法总结

Pandas 简述:

  1. Pandas 是什么?
    Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。
  2. 核心成员:
  • DataFrame:是Pandas中的一个表格型的数据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

DataFrame主要成分:

class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)Parameters(主要参数):data:    常用的数据类型(ndarray (structured or homogeneous), Iterable, dict, or DataFrame)
index:  数组列表用于结果帧的索引。如果没有输入数据的索引信息部分,并且没有提供索引,那么将默认为RangeIndex(0,1,2,3,...,n)
columns:数组列表用于生成框架的列标签。如果没有提供列,将默认为RangeIndex(0,1,2,…,n)
dtype:  dtype数据类型,默认为None
copy:   是否考虑来自输出源的数据,默认为False,False 相当于引用源数据, True为复制源数据,从而操作不影响原有数据(只影响DataFrame / 2d ndarray输入)。
  • Series:是一种类似于一维数组的对象,是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据也可产生简单的Series对象。

Series主要成分:

class pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)主要参数含义同上

基础用法

通常,我们按如下方式导入Pandas:

# Pandas 通常和numpy一起使用,好兄弟一辈子
import numpy as np
import pandas as pd

对象创建

  • Series创建:
demo:
import numpy as np
import pandas as pd
data = [1, 3, 5, 7, 9]
# default arangeindex (0, 1, 2..,n)
indexs = ['a', 'b', 'c', 'd', 'e']
pd_series = pd.Series(data, index=indexs)
print(pd_series)output:
a    1
b    3
c    5
d    7
e    9
dtype: int64
  • DataFrame创建:
demo:
import numpy as np
import pandas as pd
# 创建一个6行4列的数据
data = np.random.random([6, 4])
# 创建时间索引
indexs = pd.date_range('20190101', periods=6)
# 创建列label,特征属性
columns = list('ABCD')pd_data_frame = pd.DataFrame(data, index=indexs, columns=columns)
print(pd_data_frame)output:A         B         C         D
2019-01-01  0.856834  0.035639  0.393552  0.928195
2019-01-02  0.466478  0.489296  0.401637  0.205809
2019-01-03  0.273677  0.719979  0.114818  0.289613
2019-01-04  0.507617  0.078111  0.843729  0.162792
2019-01-05  0.182946  0.240308  0.756220  0.842928
2019-01-06  0.009890  0.931608  0.553362  0.989214

查看数据

  1. 查看DataFrame顶部和尾部的数据
  • 顶部数据查询
# 在上述代码基础上操作
# n表示需要返回前几行数据, 底层实现 同 pd_data_frame.iloc([:n])
head = pd_data_frame.head(n=3)
# print(pd_data_frame.iloc[:3])
print('head 6 of data is :\n', head)output:
head 6 of data is :A         B         C         D
2019-01-01  0.316854  0.154440  0.869840  0.198396
2019-01-02  0.590714  0.600607  0.182419  0.900057
2019-01-03  0.327585  0.938885  0.097543  0.813009
  • 尾部数据查询
# 在上述代码基础上操作
# n表示需要返回后几行数据, 底层实现 同 pd_data_frame.iloc[-n:]
head = pd_data_frame.tail(n=3)
# print(pd_data_frame.iloc[-3:])
print('tail 6 of data is :\n', head)Output:
tail 6 of data is :A         B         C         D
2019-01-04  0.499725  0.681864  0.227293  0.801329
2019-01-05  0.037664  0.384510  0.001677  0.978520
2019-01-06  0.875677  0.357367  0.208400  0.075856
  1. 显示索引、列和底层Numpy数据:
# 在上述代码基础上操作
index = pd_data_frame.index
print(index)
frame_columns = pd_data_frame.columns
print(frame_columns)
to_numpy = pd_data_frame.to_numpy()
print(to_numpy)Output:
DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04','2019-01-05', '2019-01-06'],dtype='datetime64[ns]', freq='D')
Index(['A', 'B', 'C', 'D'], dtype='object')
[[0.41637262 0.35726082 0.93384239 0.1033857 ][0.33402402 0.82419902 0.95357459 0.02332131][0.98262518 0.10126923 0.56322639 0.47149354][0.71129316 0.35403757 0.73908355 0.04409778][0.38356779 0.0237542  0.0298259  0.39641723][0.90725548 0.66034389 0.2032032  0.44325942]]
  1. pd_data_frame.describe(获取数据的统计摘要)、T(转置)、轴排序

选择数据

  1. 按标签选择
# loc 第一个参数为 行label操作, 第二个参数为 列label操作
loc_data = pd_data_frame.loc['20190101']
print('loc_data_row_label:\n', loc_data)
loc_data = pd_data_frame.loc[:, ['A', 'B']]
print('loc_data_columns_label:\n', loc_data)
loc_data = pd_data_frame.loc['20190101': '20190103', ['A', 'B']]
print('loc_data:\n', loc_data)
  1. 按位置选择
# loc 第一个参数为 行position操作, 第二个参数为 列position操作
iloc_data = pd_data_frame.iloc[1:3, :]
print('iloc_data_row_pos:\n', iloc_data)
iloc_data = pd_data_frame.iloc[:, [0, 2]]
print('iloc_data_col_pos:\n', iloc_data)
iloc_data = pd_data_frame.iloc[1:3, 0:2]
print('iloc_data:\n', iloc_data)
  1. 布尔索引
bool_data = pd_data_frame[pd_data_frame.A > 0.5]
print(bool_data)
bool_data = pd_data_frame[[True, False,True, False, True, False]]
print(bool_data)

缺失值

Pandas主要使用值np.nan来表示缺失的数据。 默认情况下,它不包含在计算中。 我们可以针对含有缺省值行或者是列进行相关操作。

  • 给缺省元素赋值
# 针对pd_data_frame重建索引,返回原对象副本
df1 = pd_data_frame.reindex(index=indexs[0:4], columns=list(pd_data_frame.columns) + ['E'])
print(df1)
df1.loc[indexs[0]:indexs[1], 'E'] = 1
print(df1)
  • 删除缺省行/列
# 'any' : If any NA values are present, drop that row or column.
# 'all' : If all values are NA, drop that row or column.
dropna = df1.dropna(how='any', axis=0)
print(dropna)
  • 填充缺省值:
# 填充缺省值
fillna = df1.fillna(value=5)
print(fillna)

Pandas 用法总结相关推荐

  1. Python pandas用法

    Python pandas用法 无味之味关注 12019.01.10 15:43:25字数 2,877阅读 91,914 介绍 在Python中,pandas是基于NumPy数组构建的,使数据预处理. ...

  2. 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)

    python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...

  3. pandas用法小结

    前言 个人感觉网上对pandas的总结感觉不够详尽细致,在这里我对pandas做个相对细致的小结吧,在数据分析与人工智能方面会有所涉及到的东西在这里都说说吧,也是对自己学习的一种小结! pandas用 ...

  4. python panda用法_Python3 pandas用法大全

    Python3 pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: importnumpy as npimport pandas as p ...

  5. 【机器学习基础】前置知识(四):一文掌握Pandas用法

    Pandas提供快速,灵活和富于表现力的数据结构,是强大的数据分析Python库. 本文收录于机器学习前置教程系列. 一.Series和DataFrame Pandas建立在NumPy之上,更多Num ...

  6. python panda用法_Python Pandas用法入门

    简介 首先pandas是基于numpy进行开发的. Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融.统计.社会科学.工程等领域里 ...

  7. python pandas 分类汇总用法_python之pandas用法大全

    一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2.导入CSV或者xlsx文件 ...

  8. Pandas教程(pandas用法)

    Pandas 基本介绍 Numpy 和 Pandas 有什么不同 如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式.Pa ...

  9. pandas用法详解

    一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2.导入CSV或者xlsx文件 ...

最新文章

  1. 【OpenCV 4开发详解】QR二维码检测
  2. vb6 获得计算机硬件信息_计算机硬件系统由哪几部分组成
  3. PAT (Basic Level) 1050 螺旋矩阵(模拟)
  4. java三目运算_Java中的三目运算符 详解
  5. mac电脑bash_profile创建,打开,编辑,保存
  6. Windows下Eclipse 安装 SVN 插件的两种方法
  7. 怎样用ZBrush中的Curves和Insert笔刷创建四肢
  8. 流量控制Sentinel
  9. 纯js实现下载功能【附上js代码】
  10. iOS16 beta8 描述文件官方地址下载
  11. 2017年语义理解总结(一)
  12. SDM660 xbl阶段使能I2C 设备实现
  13. VMware提示【该虚拟机似乎正在使用中】的解决方案
  14. 400+人支持的技能树又又又更新了,来看看对我们的学习有没有帮助呢?Python技能树评测
  15. 美国游学英国游学推荐 选择国际游学机构五大攻略
  16. PMP考试冲刺敏捷专题
  17. 光学基础知识:焦点、弥散圆、景深 焦深
  18. C++最后一次实验及实验总结
  19. 放弃vlookup吧,这3种EXCEL多表关联方法“强得很”
  20. matlab总线,MATLAB SIMULINK 创造总线 Bus Creator

热门文章

  1. 3D人脸技术漫游指南
  2. 常用英语绝佳句型(zt)
  3. python docx库_Python-docx库的使用
  4. 脑洞一下,「饿了么奖励金功能」所能达到的效果
  5. python-subprocess模块
  6. MySQL 清空表数据的两种方式和区别
  7. 使用GIMP制作描边文字
  8. JavaScript——leetcode剑指06 从尾到头打印链表
  9. kafka与zk的关系(一)
  10. 记帐软件测试自学,初入软件测试必备:不知如何下手?一篇文章带你上手批量功能测试...