㈠ pandas删除空数据行及列dropna()
import pandas as pd
# 删除含有空数据的全部行
df4 = pd.read_csv('4.csv', encoding='utf-8')
df4 = df4.dropna()
# 可以通过axis参数来删除含有空数据的全部列
df4 = df4.dropna(axis=1)
# 可以通过subset参数来删除在age和sex中含有空数据的全部行
df4 = df4.dropna(subset=["age", "sex"])
print(df4)
df4 = df4.dropna(subset=['age', 'body','home.dest'])
㈡ 怎么用python进行数据
pandas是本书后续内容的首选库。pandas可以满足以下需求:
具备按轴自动或显式数据对齐功能的数据结构。这可以防止许多由于数据未对齐以及来自不同数据源(索引方式不同)的数据而导致的常见错误。.
集成时间序列功能
既能处理时间序列数据也能处理非时间序列数据的数据结构
数学运算和简约(比如对某个轴求和)可以根据不同的元数据(轴编号)执行
灵活处理缺失数据
合并及其他出现在常见数据库(例如基于SQL的)中的关系型运算
1、pandas数据结构介绍
两个数据结构:Series和DataFrame。Series是一种类似于以为NumPy数组的对象,它由一组数据(各种NumPy数据类型)和与之相关的一组数据标签(即索引)组成的。可以用index和values分别规定索引和值。如果不规定索引,会自动创建 0 到 N-1 索引。
相关系数与协方差
有些汇总
㈢ pandas写入csv文件时,如果该文件已存在
如果该文件已存在可以选择目标表。
使用pandas自带的数据导入向导,右击导入的数据库,浏览打开要导入的csv文件,进行必要的设置,如果该文件已存在,因此可以直接选择目标表。
pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。
㈣ 数据分析—Pandas删除数据的几种情况
开始之前,pandas中DataFrame删除对象可能存在几种情况
本文就针对这四种情况探讨一下如何操作。
模拟了一份股票交割的记录。
也可以根据行号删除记录,比如删除第三行
注意,这个办法其实不是按照行号删除,而是按照索引删除。如果index为3,则会将前4条记录都删除。这个方法支持一个范围,以及用负数表示从末尾删除。
本例其实是筛选,如果需要保留,可以将筛选后的对象赋值给自己即可。
如果想取包含某些字符的记录,可以去掉~
完成~
希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油。
㈤ pandas可以执行不同库的musql表么
不可以。
经查阅pandas数据库可知,pandas只能执行相同库的musql表。主要使用python中集成的SQLAlchemy、PyMySQL的两个库来向数据库中新增行记录。
pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
㈥ 队列能用来构建series对象吗
Pandas数据结构详细说明及如何创建Series,DataFrame对象方法
2021-10-06 13:45:19 投稿:wdc
本篇文章中,我们主要侧重于介绍Pandas数据结构本身的特性,以及如何创建一个Series或者DataFrame数据对象,并填入一些数据
在网络上的Pandas教程中,很多都提到了如何使用Pandas将已有的数据(如csv,如hdfs等)直接加载成Pandas数据对象,然后在其基础上进行数据分析操作,但是,很多时候,我们需要自己创建Pandas数据对象,并填入一些数据,常见的应用场景如:我们想要将现有的数据进行处理,并生成一个新的Pandas数据对象,还有,我们想利用Pandas的数据保存功能(比如to_csv, to_json, to_hdf等等)把我们采集到的数据写入到IO里边,因此掌握Pandas对象的特性,以及如何创建也是很重要的。
有些时候我们需要利用pandas数据结构创建自己的对象,按自己的方式保存新数据,我们将在本文中介绍如何实现。
1. Pandas的两种数据类型
Pandas支持两种数据类型,分别为Series和DataFrame,其中:
Series - 是一个带有标签的一维数组,支持多种不同的类型,但是针对同一个Series里边存储的数据类型必须是一致的
DataFrame - 是一个带有标签的二维数组,是一个尺寸可以修改的表格,一个DataFrame由多个Series组成,每一列都是一个Series
一句话描述的话就是,Series是很多标量数据(Scalar)的集合,而DataFrame是很多Series的集合。
我们来看下图这个例子,在1D的Series中,下图中有三个Series,分别保存了姓名(name), 年龄(age)和得分(marks),而他们的每一行都分别对应一个不同的人的信息,在每一个Series中的每一个单元格中(比如name series的第1行,对应的Prasadi)都是一个标量(Scalar),而每一行前边的0,1,2,3这些就是数据的索引(index),也可以叫做标签,所以说,Series是带有标签的一维数组。
可以看出,利用Series只能存储一种类型的数据,比如说name series存储的数据是字符串类型,而age series存储的数据是整数型。如果我们想把name,age,marks存储在一个数据结构里,我们就需要使用DataFrame,从图中看出,DataFrame类似于一个表格数据,有行有列,行跟Series的行一致,是数据的标签,而每一列就是原来的每一个Series。
2. Series类型
如我们在前文中所说,Series结构中可以存储任何类型的数据,包括:整型,字符串类型,浮点型,甚至是Python对象等等,但是要求是,每一行的数据类型必须统一。那么如何创建一个Series对象呢,
通过numpy array
Pandas的一个主要用途是数据分析,而它也是基于Numpy实现的,因此,通过numpy array来创建Series是非常常见的。
np_array = np.random.randn(5)
pd.Series(np_array, index=['a', 'b', 'c', 'd', 'e'])
上边这段代码,利用np.random.randn随机生成一个长度为5的numpy array,然后pd.Series使用这个numpy array来创建一个Series,在创建的同时,指定了每一行的index(标签)分别是a,b,c,d,e,f,输出结果为:
通过Python字典
通过上边这个示例,大家有没有发现Series跟Python内置的dict类型是不是很类似,标签相当于dict中的key,而数据内容相当于dict中的value,它们有一一对应的关系,因此,可以想象,我们能够直接通过Python的dict来创建一个Series。
d = {'b': 1, 'a': 0, 'c': 2}
pd.Series(d)
上边这段代码,我们先创建了一个Python地点d,然后将这个字典传递给pd.Series来创建一个Pandas Series,运行结果为:
通过标量值(Scalar)
除了上边这两种方式,我们还可以通过一个简单的标量值来创建Series,特别注意的是跟上边两种方式不同,在使用这种方式创建Series的时候,我们必须指定index
pd.Series(5, index=['a', 'b', 'c', 'd', 'e'])
如上边代码所示,我们使用一个常量5,然后指定index为a,b,c,d,e,同样使用pd.Series可以创建一个Series对象,看到这里我们就能够明白为什么必须指定Index了吧,那是因为Series对象是有长度的,长度是可以大于1的,而标量的长度固定为1,我们可以通过指定Index的方式来控制生成的Series的长度,Series中的值则是重复使用这一个标量常量5。其运行结果为:
name属性
当我们创建一个Series的时候,我们可以指定一个名称,这个名称会被存储到Series的name属性中,后续我们还可以使用rename方法来修改这个属性,例如下边这样的代码:
s = pd.Series(np.random.randn(5), name='this_is_name')
s
创建了一个名称为this_is_name的Series,然后我们使用rename方法来重命名这个Series为this_is_new_name:
s = s.rename('this_is_new_name')
s
上边这两部分代码的输入如下图:
那么这个名称有什么作用呢,这里预告一下,我们将在DataFrame中用到(别忘了DataFrame是多个Series的集合)
3. DataFrame类型
在第一节中我们介绍到,DataFrame是一个二维的表格数据结构,它有行和列的概念,跟行标签相对应的,为了能够按列索引数据,每一列都可以有一个名称,即列名,我们刚在Series章节中看到,Series可以表示一列数据,我们在本节中介绍的DataFrame就是多个这样的Series的组合,每一列就对应一个Series,而每一行也对应一个Series。读到这里,你是不是能够猜的出我们刚说的Series的name属性的用途了,对了,使用Series创建DataFrame的列的时候,Series的名称就会成为列名,如果Series作为行,则Series的名称会成为行名。
接下来我们来讲解如何创建DataFrame
通过一维numpy array或者Python List 组成的字典
大家可以想想,如果一个字典的value是array或者list的时候,那么这个字典其实就是一种表格结构,图为DataFrame是一个表格结构的数据类型,我们是可以通过这样的字典来创建DataFrame,例如下边这段代码
d = {'one': [1., 2., 3., 4.],
'two': [4., 3., 2., 1.]}
pd.DataFrame(d, index=['a', 'b', 'c', 'd'])
我们把d这个Python字典传递给pd.DataFrame来创建新的DataFrame,同时我们可以通过指定index来指定DataFrame的行名(标签),上边代码的输出为
通过包含列表的Python List
我们再来想想一下,除了字典之外可以表示表格数据,还有没有其他的方法,是的,还有Python List,例如下边这段代码
data = [(1, 2., 'Hello'), (2, 3., "World")]
pd.DataFrame(data)
我们可以用data这样的Python List来表示表格数据,不同于前边提到的字典(dict),用List表示的表格数据其实是没有行名和列名的,因此Pandas默认会自动生成行名和列名,所以上边的代码输出为:
当然,自动生成的行名列名没有任何意义,为了更好的操作数据,我们还可以通过设置pd.DataFrame方法的index或者columns参数来指定自己的行名或者列名。
通过包含Python 字典的Python List
我们继续想想,还有什么能够表示表格数据?对了,包含Python字典的Python List也是可以表达表格数据的,例如下边的代码
data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]
pd.DataFrame(data)
data是一个Python List,而列表中的每一个元素都是一个字典,运行结果为:
类似的,我们也可以通过指定index或者columns参数来修改行名和列名
通过Series
我们一直在提DataFrame是很多Series的集合(注:Series在DataFrame中可以是一行,也可以是一列),因此,我们也可以通过Series来创建DataFrame,例如下边这段代码
s1 = pd.Series(np.random.randn(5), name='this_is_name')
df = pd.DataFrame(s1)
df
利用s1这个Series来创建只有一列的DataFrame,输出结果为:
还记得不,我们前边提到了Series的name属性,在使用Series创建DataFrame的时候,这个属性会用来作为列名(或者行名,我们在下边的列子可以看得出),例如下边的这段代码,如果有两个Series,我们还可以用下边这样的方式创建DataFrame
s1 = pd.Series(np.random.randn(5), name='this_is_name')
s2 = s.rename('this_is_new_name')
df = pd.DataFrame([s1, s2])
df
这里我们使用了两个名分别为this_is_name和this_is_new_name的Series来创建DataFrame,得到的结果为:
到这里,相信读者已经对Pandas提供的数据类型有了一个全面的认识了,并且有能力自己创建Pandas数据结构,并存储自己的数据了,一个常见的应用场景就是我们通过爬虫获取到数据以后,可以将这些非结构化的数据以Pandas的表格格式保存,值得注意的是数据存储在Pandas数据结构中的时候,数据其实是在内存中的,当程序被关闭以后,数据就丢失了,如果我们需要将数据持久化保存到硬盘或者数据库中的话,则可以通过简单的调用Pandas提供的to_csv, to_json, to_hdf等等接口将数据永久保存下来。
更多Python Pandas库的相关文章,请点击下面的相关文章
您可能感兴趣的文章:
Python数据分析 Pandas Series对象操作
使用python计算方差方式——pandas.series.std()
教你漂亮打印Pandas DataFrames和Series
pandas的Series类型与基本操作详解
Pandas把dataframe或series转换成list的方法
pandas中的series数据类型详解
浅谈Pandas Series 和 Numpy array中的相同点
Pandas中Series的属性,方法,常用操作使用案例
相关文章
Python浅析迭代器Iterator的使用
Python浅析迭代器Iterator的使用
2022-07-07
python面试题之read、readline和readlines的区别详解
python面试题之read、readline和readlines的区别详解
2022-07-07
Python利用LyScript插件实现批量打开关闭进程
Python利用LyScript插件实现批量打开关闭进程
2022-07-07
Pandas 筛选和删除目标值所在的行的实现
Pandas 筛选和删除目标值所在的行的实现
2022-07-07
最近更新
Python动态配置管理Dynaconf的实现示例详解
Python动态配置管理Dynaconf的实现示例详解
2022-07-07
Python中np.linalg.norm()用法实例总结
Python中np.linalg.norm()用法实例总结
2022-07-07
python生成requirements.txt文件的推荐方法
python生成requirements.txt文件的推荐方法
2022-07-07
Python3读取文件的操作详解
Python3读取文件的操作详解
2022-07-07
业界资讯
美国设下计谋,用娘炮文化重塑日本,已影响至中国
美国设下计谋,用娘炮文化重塑日本,已影响至中国
2021-11-19
时空伴随者是什么意思?时空伴随者介绍
时空伴随者是什么意思?时空伴随者介绍
2021-11-09
工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
2021-11-05
2022年放假安排出炉:五一连休5天 2022年所有节日一览表
2022年放假安排出炉:五一连休5天 2022年所有节日一览表
2021-10-26
电脑版 - 返回首页
2006-2022 脚本之家 JB51.Net , All Rights Reserved.
苏ICP备14036222号
㈦ python--pandas删除
drop 方法是pandas中删除行或列的方法。
根据 索引名 删除目标行。
当需要根据索引位置删除时,可以使用 index 属性来组合完成。
根据 列名 删除目标列,同时需要设置 axis=1 或者 columns 。
当需要根据列位置删除时,可以使用 columns 属性来组合完成。
删除列也可以用关键字 del 实现,每次只能删除一列,且删除列后,原数据发生改变。
同时删除行和列,需要为行使用 index 参数,为列使用 columns 参数。
当数据框有多重索引时,删除行时,需要设置 level 参数。
多重索引数据框同时删除行和列时,只能删除第一层索引和列。
dropna 为删除缺失值的方法。
默认会删除包含缺失值的所有行。
可设置 how , thresh , subset 参数控制删除的行为。
设置参数 axis=1 或者 axis=columns 删除缺失列。
同样,可以设置 how , thresh , subset 参数来控制删除缺失列的行为。
删除重复值用 drop_plicates 方法实现。
设置 subset 参数,根据列删除重复行。
设置 ignore_index=True 可以对删除重复行后的数据索引重排序。