python nums函数获取结果记录集有多少行记录_Python数据分析——Pandas数据结构和操作...
Pandas是什么?
1、一个强大的分析 结构化数据 的工具集
2、基础是NumPy,提供了 高性能矩阵 的运算
3、应用在数学挖掘,数据分析。比如,学生成绩分析,股票数据分析等
4、提供数据清洗功能
#使用
import pandas as pd
Pands数据结构,主要分为两种,Series和DataFrame
Series 视频资料学习分享 企(Q)鹅群 519970686
1、类似一维数组的对象
2、通过list构建Series
ser_obj = pd.Series(rang(10))
3、由数据和索引组成
索引在左,数据在右
索引是自动创建的
4、获取数据和索引
ser_obj.index
ser_obj.values
5、预览数据(取前几个)
ser_obj.head(n)
6、通过索引获取数据
ser_obj[1]
ser_obj[8]
7、索引与数据的对应关系仍保持在数组运算的结果中(过滤series中的数据)
print(ser_obj[ser_obj > 15])
8、通过dict构建Series
year_data = {2001: 17.8, 2002: 20.1, 2003: 16.5}
ser_obj2 = pd.Series(year_data)
print(ser_obj2.head())
print(ser_obj2.index)
ser_obj2.name = 'temp'
#指定name名称(相当于表头)
ser_obj2.index.name = 'year'
print(ser_obj2.head())
=================================
2001 17.8
2002 20.1
2003 16.5
dtype: float64
Int64Index([2001, 2002, 2003], dtype='int64')
year
2001 17.8
2002 20.1
2003 16.5
Name: temp, dtype: float64
DataFrame
1、类似多维数组/表格数据
2、每列数据可以是不同的类型
3、索引包括行索引和列索引
import numpy as np
# 通过ndarray构建DataFrame
array = np.random.randn(5,4)
print(array)
df_obj = pd.DataFrame(array)
print(df_obj)
# 通过dict构建DataFrame
dict_data = {'A': 1.,
'B': pd.Timestamp('20161217'),
'C': pd.Series(1, index=list(range(4)),dtype='float32'),
'D': np.array([3] * 4,dtype='int32'),
'E' : pd.Categorical(["Python","Java","C++","C#"]),
'F' : 'ChinaHadoop' }
#print dict_data
df_obj2 = pd.DataFrame(dict_data)
print(df_obj2.head())
# 通过列索引获取列数据(dataFrame优先通过列索引访问数据)
print(df_obj2['A'])
#通过索引访问数据
print(df_obj2.values[2])
#每列都是一个series
print(type(df_obj2['A']))
#通过对象属性访问
print(df_obj2.A)
# 增加列,类似dict添加key-value
df_obj2['G'] = df_obj2['D'] + 4
print(df_obj2.head())
# 删除列
del(df_obj2['G'] )
print(df_obj2.head())
Index 索引对象 视频资料学习分享 企(Q)鹅群 519970686
1、Series和DataFrame中的索引都是Index对象
2、Index具有不可变性(immutable),即Series和DataFrame中的value可以改变,但是索引不可变,保证了数据的安全
3、常见的Index种类
Index Int64Index MultiIndex(层级索引) DatatimeIndex(时间戳类型)
print(type(ser_obj.index))
print(type(df_obj2.index))
print(df_obj2.index)
=====================================
Int64Index([0, 1, 2, 3], dtype='int64')
Series数据操作
import pandas as pd
#index,指定索引名称
ser_obj = pd.Series(range(5), index = ['a', 'b', 'c', 'd', 'e'])
print(ser_obj.head())
# 通过索引取值 ser_obj['label'],ser_obj[pos]
print(ser_obj['a']) //通过索引名取值
print(ser_obj[0]) //通过位置索引取值
# 切片索引
print(ser_obj[1:3]) // 前开后闭,即,取到两个值
print(ser_obj['b':'d']) //前闭后闭,即,取到三个值
# 不连续索引
print(ser_obj[[0, 2, 4]]) // 内部是list
print(ser_obj[['a', 'e']]) //内部是list
# 布尔索引
ser_bool = ser_obj > 2
print(ser_bool)
print(ser_obj[ser_bool])
print(ser_obj[ser_obj > 2])
DataFrame数据操作
import numpy as np
# colmns 指定列名
df_obj = pd.DataFrame(np.random.randn(5,4), columns = ['a', 'b', 'c', 'd'])
print(df_obj.head())
# 列索引
print('列索引')
print(df_obj['a']) # 返回Series类型
print(type(df_obj)) # 返回DataFrame类型
# 不连续索引
print('不连续索引')
print(df_obj[['a','c']]) # 返回第一列和第三列
索引操作总结
Pandas的索引操作可归纳为3种
.loc:标签索引(标签的切片索引是包含末尾位置的,上面的前闭后闭)
.iloc: 位置索引
.ix: 标签与位置混合索引
-------------先按标签索引尝试操作,然后再按照位置索引尝试操作
# 标签索引 loc
# Series
print(ser_obj['b':'d'])
print(ser_obj.loc['b':'d'])
# DataFrame
print(df_obj['a'])
print(df_obj.loc[0:2, 'a'])
# 整型位置索引 iloc
print(ser_obj[1:3])
print(ser_obj.iloc[1:3])
# DataFrame
第一个参数,表示的是第1行和第二行,第二个0表示的哪一列
print(df_obj.iloc[0:2, 0]) # 注意和df_obj.loc[0:2, 'a']的区别
运算与对齐
按索引对齐运算,没对齐的位置补NaN
s1 = pd.Series(range(10, 20), index = range(10))
s2 = pd.Series(range(20, 25), index = range(5))
# Series 对齐运算,Series按行索引对齐,没对齐的位置补NaN
print(s1 + s2)
==================================================
0 30.0
1 32.0
2 34.0
3 36.0
4 38.0
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
================================================
import numpy as np
df1 = pd.DataFrame(np.ones((2,2)), columns = ['a', 'b'])
df2 = pd.DataFrame(np.ones((3,3)), columns = ['a', 'b', 'c'])
# DataFrame对齐操作
print(df1 + df2)
=============================
a b c
0 2.0 2.0 NaN
1 2.0 2.0 NaN
2 NaN NaN NaN
================================
# 填充未对齐的数据进行运算
#使用add,sub,div,mul;同时通过fill_value指定填充值
s1.add(s2, fill_value = 1)
df1.sub(df2, fill_value = 2.)
# 填充NaN
s3 = s1 + s2
s3_filled = s3.fillna(-1)//把所有的NaN使用-1填充
df3 = df1 + df2
df3.fillna(100, inplace = True)//把所有的NaN使用100填充
函数应用
# Numpy ufunc 函数
df = pd.DataFrame(np.random.randn(5,4) - 1)
#求绝对值,作用于df中每个数据
print(np.abs(df))
# 使用apply应用行或列数据
#如果没有指定axis方向,默认按列,axis =0
print(df.apply(lambda x : x.max()))
# 指定轴方向
print(df.apply(lambda x : x.max(), axis=1))
# 使用applymap应用到每个数据
f2 = lambda x : '%.2f' % x
print(df.applymap(f2))
排序
s4 = pd.Series(range(10, 15), index = np.random.randint(5, size=5))
# 索引排序
s4.sort_index()
df4 = pd.DataFrame(np.random.randn(3, 4),
index=np.random.randint(3, size=3),
columns=np.random.randint(4, size=4))
df4.sort_index(axis=1)
# 按值排序 sort_values(by='label')
df4.sort_values(by=1)
处理缺失数据 视频资料学习分享 企(Q)鹅群 519970686
import numpy as np
df_data = pd.DataFrame([np.random.randn(3), [1., np.nan, np.nan],
[4., np.nan, np.nan], [1., np.nan, 2.]])
df_data.head()
# isnull
df_data.isnull()
# dropna 丢弃缺失数据
df_data.dropna()
#df_data.dropna(axis=1)
# fillna 填充缺失数据
df_data.fillna(-100.)
python nums函数获取结果记录集有多少行记录_Python数据分析——Pandas数据结构和操作...相关推荐
- python nums函数获取结果记录集有多少行记录_PHP mysqli_num_rows():获取查询结果的行数...
在 PHP 中,想要获取由 SELECT 语句查询到的结果集中有多少条数据的话,则需要使用 mysqli_num_rows() 函数来实现.首先我们来看一下该函数的语法结构: 面向对象风格的写法 $m ...
- python nums函数获取结果记录集有多少行记录_python3 数据挖掘之pandas学习记录(一)-----NumPy...
这几天由于对excel的模块使用及数据分析处理的需求,看了下pandas,分享一下. 1.pandas之numpy 1.1NumPy是Python数值计算最重要的基础包.很多都采用NumPy的数组作为 ...
- 【python】一个目录里面多个python程序文件,统计一下里面有多少行代码。即分别列出:代码、空行、注释的行数。
一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出:代码.空行.注释的行数. 题目 代码 结果 题目 一个目录里面多个python程序文件,统计一下里面有多少行代码.即分别列出 ...
- mysql recordcount 1_[转载]ADO记录集GetRecordCount()返回记录条数为啥总为-1
我用ADO组件访问Sybase/mysql数据库,执行SQL语句会返回_RecordsetPtr记录集指针,这个指针有个成员函数GetRecordCount(),我想通过他知道记录集中有多少条记录,但 ...
- python自定义函数实例计算1-n的偶偶数和_python用户输入一个整数N,计算并输出1到N相加的和,请问这个程序错在哪里了?...
展开全部 第一个错误的地方是for i in str(n),input()输入的是636f707962616964757a686964616f31333431356661整型,循环增加应该用for i ...
- python数据分析知识点_Python数据分析--Pandas知识点(三)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. 下面将是在知识点一, 二的基础上继续总结. 前面所介绍的都是以表格的形式中展现数据, 下面将介绍Pandas与Matpl ...
- Python数据分析——pandas数据结构(DataFrame)
一.pandas数据结构–DataFrame DataFrame 是表格型的数据结构,每列值的数据类型可以不同,也可以相同 DataFrame 常用于二维数据. DataFrame 的属性: valu ...
- python数据分析包pandas论文_python数据分析pandas包入门学习(一)pandas数据结构介绍...
本文参考<利用python进行数据分析>的第五章 pandas入门python 1 pandas数据结构介绍 pandas有两种主要的数据结构:series和DataFrame Serie ...
- python大众点评网实训报告中的参考文献_Python数据分析:大众点评数据进行选址...
Python Python开发 Python语言 Python数据分析:大众点评数据进行选址 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时 ...
最新文章
- TypeError: 'module' object is not callable 原因分析(python模块导入注意事项)
- 一直在构建版本_球鞋 | 一鞋两穿?AJ1十孔版本登场,拉链设计还是真香了?
- linux tar压缩解压命令
- Debian Squeeze AMD64安装Oracle 10g x86_64 10.2.0....
- java java编码_Java编码约定被认为是有害的
- LeetCode 1824. 最少侧跳次数(DP)
- 解读最具O2O属性—哈根达斯微信企业号的成功之道
- 武汉科技大学ACM:1006: 我是老大
- 微信服务号如何绑定腾讯云服务器
- OC 5028B欧创芯原装,开关降压型大功率恒流驱动芯片
- 世界杯梦幻阵容HTML5代码,2018俄罗斯世界杯法国队23人大名单一览表
- 2014,为了梦想宁愿破釜沉舟
- A Creed to Live By
- Ubutntu18.04 root用户下谷歌浏览器打不开
- 网络基础 — IP地址和子网掩码
- 腾讯云服务器性能评测:8核 16G 18M 配置
- paperswithcode 论文阅读与代码复现
- java生成pdf文件乱码问题解决
- 不要过于积极表现自己
- 读书笔记 -公司改造 和 紧迫感
热门文章
- OpenStack的八年之痒
- Windows ESXI 5.5 升級到 VCSA 6.5
- 电子书epub格式,在电脑上打开/浏览软件
- Linux学习总结(68)——Linux 30年专访:Linus Torvalds谈Linux内核开发与Git
- 生产上线发现重大Bug的思考
- html怎样获取用户手机号码,小程序如何获取用户手机号?
- 为什么DevOps和SRE职位这么难招人?
- 区块链研习 | 区块链的能力很大又很小
- 使用ABAP Push Channel(APC)开发的乒乓球游戏,可双打 1
- 湖北网络安全的产业机遇在哪里