如果重复的那些行是每一列懂相同的,删除多余的行只保留相同行中的一行就可以了,这个在Excel或pandas中都有很容易使用的工具了,例如Excel中就是在菜单栏选择数据->删除重复值,然后选择根据哪些列进行去重就好...=list(one['name']) #或者用set zero=one.iloc[[0]] #iloc[行号]是series iloc[[行号]]是dataframe #zero['name...更深入一些,如果没有某一列可以作为主键呢?存在一个表,除name之外,其他的列都相同算重复行,这些列有文本有数值型,但是不能拿其中任何列作主键,实现上面的去重合并name,怎么办?...一个个比对是O(n^2),我目前的思路时用除name之外的列合并形成一个字符串型的新列,拿这列做主键,用上面的代码片段。合并之后再删掉之前建的新列保持数据的格式。...指定根据哪些列去重,默认是根据所有列,也就是当两行的所有列都一样时满足去重条件; keep有三种选择:{‘first’, ‘last’, False},first和last分别对应选重复行中的第一行、最后一行
如果你在使用 Pandas(Python Data Analysis Library) 的话,下面介绍的对你一定会有帮助的。...首先我们先介绍一些简单的概念 DataFrame:行列数据,类似 Excel 的 sheet,或关系型数据库的表 series:单列数据 axis:0:行,1:列 shape:DataFrame...在 DataFrame 中增加列 在 DataFrame 中添加新列的操作很简单,下面介绍几种方式 简单方式 直接增加新列并赋值 df['new_column'] = 1 计算方式...Pandas 提供了三个方法做类似的操作,loc,iloc,ix,ix 官方已经不建议使用,所以我们下面介绍 loc 和 iloc loc 根据标签选取loc df.loc[行索引开始位置:行索引结束位置...,[列名数组]] iloc 根据索引选取 df.iloc[行索引开始位置:行索引结束位置,列索开始位置:列索引结束位置] 选取行数据 df.loc[[行索引数组]],df.iloc
二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。...DataFrame是二维的数据结构,其本质是Series的容器,因此,DataFrame可以包含一个索引以及与这些索引联合在一起的Series,由于一个Series中的数据类型是相同的,而不同Series...使用标签选取数据: df.loc[行标签,列标签]df.loc['a':'b']#选取ab两行数据df.loc[:,'one']#选取one列的数据 df.loc的第一个参数是行标签,第二个参数为列标签...使用位置选取数据: df.iloc[行位置,列位置]df.iloc[1,1]#选取第二行,第二列的值,返回的为单个值df.iloc[0,2],:]#选取第一行及第三行的数据df.iloc[0:2,:]#...选取第一行到第三行(不包含)的数据df.iloc[:,1]#选取所有记录的第一列的值,返回的为一个Seriesdf.iloc[1,:]#选取第一行数据,返回的为一个Series PS:loc为location
一、简介 Pandas 是 Python 中的数据操纵和分析软件包,它是基于Numpy去开发的,所以Pandas的数据处理速度也很快,而且Numpy中的有些函数在Pandas中也能使用,方法也类似。...Pandas 为 Python 带来了两个新的数据结构,即 Pandas Series(可类比于表格中的某一列)和 Pandas DataFrame(可类比于表格)。...) python s.drop(['apple'],inplace=True) 四、DataFrame的使用 1、创建DataFrame pd.DataFrame(data, index, columns...除此之外,还可以使用函数reset_index()重置数据集的index为0开始计数的数列。...how = 'all')#只删除所有数据缺失的列 #删除重复值 drop_duplicates(inplace = True) #更改某行/列/位置数据 用iloc或者loc直接替换修改即可 #更改数据类型
使用如下缩写: df:任意的Pandas DataFrame对象 s:任意的Pandas Series对象 创建数据 # -*- coding: utf-8 -*- """ Created on...对象中每一列的唯一值和计数 数据排序 df.sort_index(axis=1, ascending=False) # 即按列名排序,交换列位置。...s.iloc[0]:按位置选取数据 s.loc['index_one']:按索引选取数据 df.iloc[0,:]:返回第一行 df.iloc[0,0]:返回第一列的第一个元素 查看第四行数据 df.loc...two -0.413331 three -2.767427 four -0.763200 Name: 2014-11-04 00:00:00, dtype: float64 通过标签来在多个轴上进行选择...df.mean():返回所有列的均值 df.corr():返回列与列之间的相关系数 df.count():返回每一列中的非空值的个数 df.max():返回每一列的最大值 df.min():返回每一列的最小值
在选择括号[]前面需要使用loc/iloc运算符。使用loc/iloc时,逗号前面的部分是你想要的行,逗号后面的部分是你想要选择的列。...当特别关注表中位置的某些行和/或列时,请在选择括号[]前使用iloc运算符。 使用loc或iloc选择特定行和/或列时,可以为所选数据分配新值。...需要在选择括号[]前使用loc/iloc运算符。在使用loc/iloc时,逗号前面的部分是您想要的行,逗号后面的部分是您要选择的列。...当特别关注表中位置的某些行和/或列时,请在选择括号[]前使用iloc运算符。 在使用loc或iloc选择特定行和/或列时,可以为所选数据分配新值。...使用iloc选择特定行和/或列时,请使用表中的位置。 您可以根据loc/iloc的选择分配新值。 前往用户指南 用户指南页面提供了有关索引和选择数据的完整概述。
完整性:指信息具有一个实体描述的所有必需的部分,在传统关系型数据库中,完整性通常与空值(NULL)有关。一般包括记录的缺失和记录属性的缺失。...(array_1d[:3]) # 访问前两个元素 print(array_1d[:-1]) # 访问除末尾元素之外的元素 print...:索引 Dataframe既有行索引也有列索引,可以被看做由Series组成的字典(共用一个索引) 选择列 / 选择行 / 切片 / 布尔判断 1.选择行与列 # 选择行与列 df = pd.DataFrame...使用[]访问数据 变量[索引] 需要说明的是,若变量的值是一个Series类对象,则会根据索引获取该对象中对应的单个数据;若变量的值是一个DataFrame类对象,在使用“[索引]”访问数据时会将索引视为列索引...变量[第一层索引] 变量[第一层索引][第二层索引] 以上方式中,使用 变量[第一层索引] 可以访问第一层索引嵌套的第二层索引及其对应的数据; 使用 变量[第一层索引][第二层索引] 可以访问第二层索引对应的数据
认识了这两点,那么就很容易理解DataFrame中数据访问的若干方法,比如: 1. [ ],这是一种最常用的数据访问方式,某种意义上沿袭了Python中的语法糖特色。...通常情况下,[]常用于在DataFrame中获取单列、多列或多行信息。具体而言: 当在[]中提供单值或多值(多个列名组成的列表)访问时按列进行查询,单值访问不存在列名歧义时还可直接用属性符号" ....切片类型与索引列类型不一致时,引发报错 2. loc/iloc,可能是除[]之外最为常用的两种数据访问方法,其中loc按标签值(列名和行索引取值)访问、iloc按数字索引访问,均支持单值访问或切片查询...4. isin,条件范围查询,一般是对某一列判断其取值是否在某个可迭代的集合中。即根据特定列值是否存在于指定列表返回相应的结果。 5. where,妥妥的Pandas仿照SQL中实现的算子命名。...在DataFrame中,filter是用来读取特定的行或列,并支持三种形式的筛选:固定列名(items)、正则表达式(regex)以及模糊查询(like),并通过axis参数来控制是行方向或列方向的查询
除了使用传入列表或numpy数组之外,也可以通过字典的方式创建: s=pd.Series({'a':5, 'b':4, 'c':3, 'd':2, 'e':1}) DataFrame DataFrame...⚠️ Pandas官方提示:以下切片形式操作在简单的交互式数据分析时是非常友好的,但是如果应用于生产环境尽量使用优化后的一些方法:.at,.iat,.loc,.iloc,.ix等。...Pandas主要有两种数据查询选择操作: 基于标签的查询 基于整数的位置索引查询 Pandas在选择列时,无需使用 date[:, columns] 的形式,先使用 : 选择所有行,再指定 columns...data[['date', 'hour', 'type', '1001A']] # 获取四列所有行数据,仍为DataFrame data[0:5] # 选择所有列前5行数据,仅包括索引0-4行 超纲题...sub.xs('1001A', axis=1) 简单绘图 在 Python可视化工具概览 中我们提到过数据处理和可视化一条龙服务的Pandas,Pandas不仅可以进行数据处理工作,而且其还封装了一些绘图方法
序列中的数据选择 我们在上一节中看到,Series对象在很多方面都像一维 NumPy 数组,并且在许多方面像标准的 Python 字典。...作为一维数组的序列 Series建立字典式接口上,并通过与 NumPy 数组相同的基本机制,提供数组式的项目选择,即切片,掩码和花式索引。...数据帧中的数据选择 回想一下,DataFrame在很多方面都类似二维或结构化数组,在其它方面莱斯共享相同索引的Series结构的字典。在我们探索此结构中的数据选择时,记住些类比是有帮助的。...作为字典的数据帧 我们将考虑的第一个类比是,DataFrame作为相关Series对象的字典。...使用iloc索引器,我们可以索引底层数组,好像它是一个简单的 NumPy 数组(使用隐式的 Python 风格索引),但结果中保留了DataFrame索引和列标签: data.iloc[:3, :2]
使用索引 使用.loc与.iloc 查询数据集 分类和汇总数据 对列进行操作 指定数据类型 数据清洗 数据可视化 一、安装与数据介绍 pandas的安装建议直接安装anaconda,会预置安装好所有数据分析相关的包...$ pip install pandas 既然是数据分析就肯定选择jupyter notebook $ pip install jupyter 接下来就可以进入python使用pandas对数据进行一些探索性的分析...我们知道Series对象在几种方面与列表和字典的相似之处。也就意味着我们可以使用索引运算符。现在我们来说明如何使用两种特定于pandas的访问方法:.loc和.iloc。...使用.loc和.iloc会发现这些数据访问方法比索引运算符更具可读性。因为在之前的文章中已经详细的介绍了这两种方法,因此我们将简单介绍。更详细的可以查看【公众号:早起python】之前的文章。...五、查询数据集 现在我们已经了解了如何根据索引访问大型数据集的子集。现在,我们继续基于数据集列中的值选择行以查询数据。例如,我们可以创建一个DataFrame仅包含2010年之后打过的比赛。
可以自定义索引列,index_col=, 可以是列的序号,或者是列的 name wine_rev = pd.read_csv("winemag-data-130k-v2.csv", index_col=...Indexing, Selecting, Assigning 2.1 类python方式的访问 item.col_name # 缺点,不能访问带有空格的名称的列,[]操作可以 item['col_name...再取行 wine_rev.country[1] # 'Portugal' 2.2 Pandas特有的访问方式 2.2.1 iloc 基于index访问 要选择DataFrame中的第一行数据,我们可以使用以下代码...都是行第一,列第二,跟上面python操作是相反的 wine_rev.iloc[:,0],获取第一列,: 表示所有的 0 Italy 1 Portugal 2...2.2.2 loc 基于label标签访问 wine_rev.loc[0, 'country'],行也可以使用 [0,1]表示离散行,列不能使用index 'Italy' wine_rev.loc[ :
#1.通过传递一个list对象来创建一个Series,pandas会默认创建整型索引 s = pd.Series([1,3,np.nan,5,8]) #2.通过传递一个numpy array,时间索引以及列标签来创建一个...中直接修改需加入inplace=True) df1.reset_index(drop=True) #三、选择(通过索引或者位置进行选择) #获取 #1.选择一个单独的列,这将会返回一个Series,等同于...(iloc) df1.iloc[3] df1.iloc[3:5,0:2] df1.iloc[[1,2,4],[0,2]] df1.iloc[1:3,:] df1.iloc[1,1] #布尔索引 #1.使用一个单独列的值来选择数据...使用where操作来选择数据 df1[df1>0] #3....['E'].isin(['two','four'])] #设置 #1.设置一个新的列(新列为Series则必须设置和原DataFrame一致的索引) s1 = pd.Series(range(1,7),
Insert Insert用于在DataFrame的指定位置中插入新的数据列。默认情况下新列是添加到末尾的,但可以更改位置参数,将新列添加到任何位置。...用法: Dataframe.insert(loc, column, value, allow_duplicates=False) 参数作用: loc: int型,表示插入位置在第几列;若在第一列插入数据...Loc and iloc Loc和iloc通常被用来选择行和列,它们的功能相似,但用法是有区别的。...用法: DataFrame.loc[] 或者 DataFrame.iloc[] loc:按标签(column和index)选择行和列 iloc:按索引位置选择行和列 选择df第1~3行、第1~2列的数据...如果未指定, 请使用未设置为id_vars的所有列 var_name [scalar]:指代用于”变量”列的名称。
一般在jupyter的一个cell中只默认输出最后一行的变量,要想前面行的数据,需要调用print()方法; 其中,.iloc只按整数位置进行选择,其工作方式与Python列表类似,.loc只通过索引标签进行选择..." # 修改第0行类别标签列的数据 print(DataFrame) DataFrame = iris_data[:5].copy() # 建立数据副本,以便多次修改 DataFrame.loc[1]...[]是左闭右开,如DataFrame.iloc[1:3, 1]选择第一二行的第一列,如下: print(DataFrame.iloc[-1]) # 最后一行 print(DataFrame.iloc[1...:3, 1]) # 第一二行的第1列 print('----') print(DataFrame.iloc[1:3, 1:3]) print(DataFrame.iloc[:3, :3]) # 前三行的前三列...print(DataFrame.iloc[[0,1,3], 1]) # 第0,1,3行的第1列 print(DataFrame.iloc[[True, False, True, False, False
我们已经学习了使用单括号进行简单的列提取,并且使用fillna()在列中输入null值。下面是您需要经常使用的其他切片、选择和提取方法。...要将列提取为DataFrame,需要传递的是列表。...为了进一步说明这一点,我们选择多行。 你会如何使用列表呢?在Python中,只需使用像example_list[1:4]这样的括号进行切片。...条件筛选 我们已经讨论了如何选择列和行,但是如果我们想要进行条件选择呢?...让我们看看条件选择使用数值过滤Dataframe打分: movies_df[movies_df['rating'] >= 8.6].head(3) 运行结果: ?
索引和切片操作是最基本最常用的数据处理操作,Pandas中的索引和切片操作基于Python的语言特性,支持类似于numpy中的操作,也可以使用行标签、列标签以及行标签与列标签的组合来进行索引和切片操作...本文使用的数据来源于网易财经,具体下载方式可以参考:Pandas知识点-DataFrame数据结构介绍 前面介绍DataFrame和Series的文章中,代码是在Pycharm中编写的,本文和后面介绍Pandas...二、读取一列数据或一行数据 1. 读取一列数据 ? 获取DataFrame中的一列数据有两种方式,第一种是用 data['列索引'] ,如 data['收盘价'] 可以获取收盘价这一列的数据。...iloc属性基于数值索引获取数据,用法为 data.iloc[数值] ,如 data.iloc[0] 是获取DataFrame中的第一行数据,与 data.loc['2021-02-19'] 结果相同。...loc属性是基于索引名来获取数据的,在loc中的行索引和列索引都要使用索引名,iloc属性是基于数值索引来获取数据的,在iloc中的行索引和列索引都要使用数值索引。
DataFrame 除了行标签和列标签之外,还具有行列位置编号。...DataFrame 获取指定行列的数据 以下示例都使用加载的 gapminder.tsv 数据集进行操作,注意将 year 这一列设置为行标签。..., 起始列位置:结束列位置] 根据行列标签位置获对应行的对应列的数据,包含起始行列位置,但不包含结束行列位置 演示示例: 示例1:获取 china_df 中前三行的前三列的数据,分别使用上面介绍的loc...和iloc实现 示例实现: 1)示例1:获取 china_df 中前三行的前三列的数据,分别使用上面介绍的loc和iloc实现 # 示例1:获取 china_df 中前三行的前三列的数据,分别使用上面介绍的...,不包括结束行位置 演示示例: 示例1:获取所有行的 country、pop、gdpPercap 列的数据 示例2:获取所有行的 pop 列的数据 示例3:获取前三行的数据 示例4:从第一行开始,每隔一行获取一行数据
通过看别人写的博客,发现python里面有关PDF解析的通常有以下四种: pdfminer,擅长仅仅是文字的解析,本小白试过了,是把表格解析成普通的文本,还经常会伴随一些莫名奇妙的不认识的符号。...,这个是我看过的前辈写的博客中使用最多的,本人用过了。...我在这里并没有在瞎说,而且还得装的的java的,后者只装一个的ImageMagick的就行,而且ImageMagick的很有用的 pandas.core.frame.DataFrame 切片技巧 import...(df.iloc[3]) # 输出第4行的值 索引以0开头 print(df.iloc[3:5, 0:2]) # 输出4-5行,1到2列 print(df.iloc[[1, 2, 4], [0, 2...]]) # 输出不连续行列的树 print(df.iat[1, 1]) # 提取2行2列的数,提取单个数iat效率更高 print('分割线','*'*200)
(1)官网: Python Data Analysis Library (2)十分钟入门Pandas: 10 Minutes to pandas 在第一次学习Pandas的过程中,你会发现你需要记忆很多的函数和方法...pandas-cheat-sheet.pdf 关键缩写和包导入 在这个速查手册中,我们使用如下缩写: df:任意的Pandas DataFrame对象 同时我们需要做如下的引入: import pandas...']:按索引选取数据 df.iloc[0,:]:返回第一行 df.iloc[0,0]:返回第一列的第一个元素 数据清理 df.columns = ['a','b','c']:重命名列名 pd.isnull...():检查DataFrame对象中的空值,并返回一个Boolean数组 pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组 df.dropna():删除所有包含空值的行...和col3的最大值的数据透视表 df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值 data.apply(np.mean):对DataFrame中的每一列应用函数
领取专属 10元无门槛券
手把手带您无忧上云