Pandas 用法总结
Pandas 用法总结
Pandas 简述:
- Pandas 是什么?
Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。 - 核心成员:
- 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
查看数据
- 查看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
- 显示索引、列和底层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]]
- pd_data_frame.describe(获取数据的统计摘要)、T(转置)、轴排序
选择数据
- 按标签选择
# 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)
- 按位置选择
# 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)
- 布尔索引
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 用法总结相关推荐
- Python pandas用法
Python pandas用法 无味之味关注 12019.01.10 15:43:25字数 2,877阅读 91,914 介绍 在Python中,pandas是基于NumPy数组构建的,使数据预处理. ...
- 用python的pandas打开csv文件_python读写数据读写csv文件(pandas用法)
python中数据处理是比较方便的,经常用的就是读写文件,提取数据等,本博客主要介绍其中的一些用法.Pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用 ...
- pandas用法小结
前言 个人感觉网上对pandas的总结感觉不够详尽细致,在这里我对pandas做个相对细致的小结吧,在数据分析与人工智能方面会有所涉及到的东西在这里都说说吧,也是对自己学习的一种小结! pandas用 ...
- python panda用法_Python3 pandas用法大全
Python3 pandas用法大全 一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: importnumpy as npimport pandas as p ...
- 【机器学习基础】前置知识(四):一文掌握Pandas用法
Pandas提供快速,灵活和富于表现力的数据结构,是强大的数据分析Python库. 本文收录于机器学习前置教程系列. 一.Series和DataFrame Pandas建立在NumPy之上,更多Num ...
- python panda用法_Python Pandas用法入门
简介 首先pandas是基于numpy进行开发的. Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融.统计.社会科学.工程等领域里 ...
- python pandas 分类汇总用法_python之pandas用法大全
一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2.导入CSV或者xlsx文件 ...
- Pandas教程(pandas用法)
Pandas 基本介绍 Numpy 和 Pandas 有什么不同 如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式.Pa ...
- pandas用法详解
一.生成数据表 1.首先导入pandas库,一般都会用到numpy库,所以我们先导入备用: import numpy as np import pandas as pd 2.导入CSV或者xlsx文件 ...
最新文章
- 【OpenCV 4开发详解】QR二维码检测
- vb6 获得计算机硬件信息_计算机硬件系统由哪几部分组成
- PAT (Basic Level) 1050 螺旋矩阵(模拟)
- java三目运算_Java中的三目运算符 详解
- mac电脑bash_profile创建,打开,编辑,保存
- Windows下Eclipse 安装 SVN 插件的两种方法
- 怎样用ZBrush中的Curves和Insert笔刷创建四肢
- 流量控制Sentinel
- 纯js实现下载功能【附上js代码】
- iOS16 beta8 描述文件官方地址下载
- 2017年语义理解总结(一)
- SDM660 xbl阶段使能I2C 设备实现
- VMware提示【该虚拟机似乎正在使用中】的解决方案
- 400+人支持的技能树又又又更新了,来看看对我们的学习有没有帮助呢?Python技能树评测
- 美国游学英国游学推荐 选择国际游学机构五大攻略
- PMP考试冲刺敏捷专题
- 光学基础知识:焦点、弥散圆、景深 焦深
- C++最后一次实验及实验总结
- 放弃vlookup吧,这3种EXCEL多表关联方法“强得很”
- matlab总线,MATLAB SIMULINK 创造总线 Bus Creator