Pandas基础使用
Pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。
1、导入pandas
import pandas as pd
2、pandas数据类型:
1)Series:一维数据类型,其中每个元素都有一个标签
2)DataFrame:二维数据类型,它可以存储各种不同类型的数据,每个元素都有自己的标签
3、Series对象的创建
s = pd.Series([-1.234,2.354,1.256,-5.235])
可以看到如果我们没有指定行索引,pandas将会默认给它创建0,1,2,...等作为行索引
当然我们也可以给它指定行索引index,如下:
注意上面两个例子中打印出来的的type,下面我们将其中一个数字改为字符串,这时候,它就不再是单纯的数字了,它的dtype就变成了object
也就是说,我们可以指定dtype输出,如下,指定dtype为int,输出值就全部去掉小数部分,只打印出了整数部分的值:
除了上面的以list创建Series外,还可以通过字典方式,常量值等来创建Series
4、Series对象的访问
s.values:获取所有的值列表
s.index:获取所有的行索引列表
s['a'] :访问索引为'a'的元素
s[0] : 访问第1个元素
s[['a', 'b']]:访问索引为a和b的两个元素
s[:2]:访问前两个元素
5、DataFrame对象的生成
pd.DataFrame(data, index, column)
data数据类型:列表嵌套的列表,列表组成的字典,Series组成的字典,字典组成的字典等
index:行索引列表
column:列索引列表
行索引和列索引都可以为为空,pandas会自动以0,1,2,...等为它创建索引
1)以列表嵌套列表的方式生成DataFrame,外层列表长度表示行数,内层列表最大长度表示列数
2)以列表组成的字典,列表长度需要相同,将会默认以字典的key作为列索引
3)Series组成的字典生成DataFrame
以字典形式生成的DataFrame对象,会以key的并集作为列索引,index的并集作为行索引,不存在的赋值为NaN
6、DataFrame对象的读取
df.index:获取行索引列表
df.values:获取值列表
df.columns:获取列索引列表
df.a/ df['a']:获取列索引为first的元素
df[0:1]:获取第一行元素
df[:3]:获取前三行元素
df.loc[:, :]:访问所有行,所有列元素
df.loc[:, ['a', 'b']]:访问所有行,列为a和b的元素
df.loc[['a'], ['b']]:访问行为a,列为b的元素
df.iloc[:,:]:访问所有行,所有列元素
df.iloc[0:2, :2]:访问前两行,前两列元素
df.iloc[[0,2], 0:2]:访问第1行,第3行及前两列元素
df.ix[:,:]:访问所有行,所有列元素
df.ix[:2, ['a','b']]:访问前两行,列索引为a和b的元素
df.ix[df.a>1, :2]:访问所有列索引为a的元素中,大于1的元素的行和前两列的元素
7、下面我们以股票交易数据为例来分析:
我这里有一个csv格式的近两年来的股票数据( table.csv )
1)读取csv文件
df = pd.read_csv("C:\\Users\\admin\\Desktop\\table.csv",parse_dates=True, header=0,index_col=0,encoding="gb2312")
2)数据内容查看方法:
df.head(n):查看前n行数据
df.tail(n):查看后n行数据
df.columns:查看所有的索引列列表
df.index:查看所有的行索引列表
df.values:查看所有的值列表
df.shape:查看行数和列数
df.describe():查看基本信息,如总条数,最小值,最大值,平均数等
df.info():可以查看有几条非空数据
df.isnull():查看所有数据是否为空
df[df.isnull().T.any()]:查看含有空元素的行
df.fillna(method='bfill', axis=0, inplace=True):用下一行的数据替换掉NaN(用上一行method='ffill', 指定值替换用value=指定值)
3、特殊值处理方法
df.round(n):四舍五入,保留n位小数
df.astype(type):按照指定的格式转换数值
df.Volume.astype(int):将volume列的数值转换为int类型
applymap:可以搭配lambda使用,做数据格式转换
df.applymap(lambda x: '%0.2f' % x):保留两位小数
df.ix[:, ['Volume']].apply(lambda x: '%0.0f' % x):保留0位小数
df[df.values==0]:查找值为0的数据
df.loc[df.loc[:, high]==0, 'High'] = df.High.median():将High列为0的数值替换为High列的中间值
Pandas基础使用的更多相关文章
- 利用Python进行数据分析(12) pandas基础: 数据合并
pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...
- 利用Python进行数据分析(9) pandas基础: 汇总统计和计算
pandas 对象拥有一些常用的数学和统计方法. 例如,sum() 方法,进行列小计: sum() 方法传入 axis=1 指定为横向汇总,即行小计: idxmax() 获取最大值对应的索 ...
- 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作
一.reindex() 方法:重新索引 针对 Series 重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- Pandas基础学习与Spark Python初探
摘要:pandas是一个强大的Python数据分析工具包,pandas的两个主要数据结构Series(一维)和DataFrame(二维)处理了金融,统计,社会中的绝大多数典型用例科学,以及许多工程领域 ...
- numpy&pandas基础
numpy基础 import numpy as np 定义array In [156]: np.ones(3) Out[156]: array([1., 1., 1.]) In [157]: np.o ...
- Pandas 基础(1) - 初识及安装 yupyter
Hello, 大家好, 昨天说了我会再更新一个关于 Pandas 基础知识的教程, 这里就是啦......Pandas 被广泛应用于数据分析领域, 是一个很好的分析工具, 也是我们后面学习 machi ...
- 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础
在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...
- python学习笔记(四):pandas基础
pandas 基础 serise import pandas as pd from pandas import Series, DataFrame obj = Series([4, -7, 5, 3] ...
- 数据分析02 /pandas基础
数据分析02 /pandas基础 目录 数据分析02 /pandas基础 1. pandas简介 2. Series 3. DataFrame 4. 总结: 1. pandas简介 numpy能够帮助 ...
随机推荐
- jdk各版本特性
JDK Version 1.0 开发代号为Oak(橡树),于1996-01-23发行. JDK Version 1.1 于1997-02-19发行. 引入的新特性包括: 引入JDBC(Java Dat ...
- c#数据批量插入
由于之前面试中经常被问到有关EF的数据批量插入问题,今天以Sqlserver数据库为例,对.net中处理数据批量处理的方案进行了测试对比. 1.四种测试方案 (1)普通的EF数据批量插入:即调用DbS ...
- Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
今天在用一键安装mysql的shell脚本安装mysql-5.1.73软件后发现mysql始终无法启动,多次执行后依旧报错,只能去查看error日志,发现了如下的2个错误: 错误一:Fatal err ...
- c/c++ 友元的简单应用
友元的简单应用 1,对象 + 对象,或者,对象 + 数字,可以用类的成员函数去重载+号函数,但是,数字 + 对象就不能用类的成员函数去重载+号函数了, 因为编译器会把数字 + 对象翻译成数字.oper ...
- C# 中将月份格式化为英语缩写格式
在测试Android 系统的时候,日期输入框需要输入英语短格式,如下. 考虑到系统日期格式和地域的关系紧密,地域不同,日期格式不同,所以经过查找,找到下面的解决方法. date.ToString(&q ...
- 使用Java+MySQL+Apache开发后台项目(一)
做前端开发的人越来越多,后端维护的人才越来越稀缺,这种趋势正在慢慢扩展.像我这种人总喜欢反其道而行之,做后端开发的人虽然减少了,但是工作量和工作资质都要求的更高了,随着人工智能的发展,需要后台处理的数 ...
- C语言 投票系统:给定候选人,从键盘输入候选人的名字,统计票数,并输出最终获胜者
投票系统:给定候选人名单,从键盘输入候选人的名字,统计票数,并输出最终获胜者.若投票人输入的名字不在其候选名单上,则该票数无效. //凯鲁嘎吉 - 博客园 http://www.cnblogs.com ...
- 我的游戏学习日志3——三国志GBA
我的游戏学习日志3——三国志GBA 三国志GBA由日本光荣公司1991~1995所推出<三国志>系列游戏,该作是光荣在GBA上推出的<三国志>系列作品的第一款.本游戏登场武将总 ...
- background-image使用svg如何改变颜色
结论 在我多番测试之后,才发现background-image使用svg,改变颜色根本做不了. 分析 当svg图片被使用成background-image,颜色的设置需要在svg内部才能生效.在外部C ...
- Why do Kafka consumers connect to zookeeper, and producers get metadata from brokers?
Why do Kafka consumers connect to zookeeper, and producers get metadata from brokers? Ask Question u ...