而真实世界的数据中有重复项,即使在应该是唯一的字段中也是如此。 本节描述了重复标签如何改变某些操作的行为,以及如何在操作过程中防止重复项的出现,或者在出现重复项时如何检测它们。...categories参数是可选的,这意味着在创建pandas.Categorical时,实际的类别应该从数据中存在的内容中推断出来。默认情况下,假定类别是无序的。...唯一的区别在于返回类型(用于获取)以及只有已在 categories 中的值才能被赋值。...在 apply 中的 dtype pandas 目前在 apply 函数中不会保留 dtype:如果你沿着行应用,你会得到一个 Series,其 dtype 为 object(与获取一行相同 -> 获取一个元素将返回基本类型...唯一的区别是返回类型(用于获取)和只有已在categories中的值才能被赋值。 获取 如果切片操作返回DataFrame或类型为Series的列,则category dtype 将被保留。
注意 在应用可调用对象之前,将元组键解构为行(和列)索引,因此无法从可调用对象中返回元组以索引行和列。 从具有多轴选择的对象中获取值使用以下表示法(以.loc为例,但.iloc也适用)。...警告 当您提供与索引类型不兼容(或可转换)的切片器时,.loc是严格的。例如,在DatetimeIndex中使用整数。这将引发TypeError。....iloc来表示,通过明确在索引器上获取位置,并使用位置索引来选择内容。...唯一的例外是在整数和浮点数数据之间执行联合操作时。在这种情况下,整数值将被转换为浮点数。...在具有不同数据类型的索引之间执行Index.union()时,索引必须转换为公共数据类型。通常情况下,尽管不总是如此,这是对象数据类型。唯一的例外是在整数和浮点数据之间执行联合时。
这些 boolean 对象可以在索引操作中使用,请参阅布尔索引一节。 布尔归约 你可以应用归约:empty、any()、all() 和 bool() 来提供一种总结布尔结果的方法。...每个函数还接受一个可选的 level 参数,该参数仅在对象具有分层索引时适用。...pipe 可以轻松地在方法链中使用您自己或另一个库的函数,与 pandas 的方法并列使用。...pipe 让您可以在方法链中轻松使用自己或另一个库的函数,与 pandas 的方法一起使用。...注意 在编写对性能敏感的代码时,有充分的理由花一些时间成为一个重新索引的忍者:许多操作在预对齐数据上更快。添加两个不对齐的 DataFrame 内部会触发重新索引步骤。
解决ValueError: Shape of passed values is (33, 1), indices imply (33, 2)在使用Python进行数据分析和处理时,我们经常会遇到各种错误和异常...在解决这个错误之前,我们需要理解数据的形状以及数据对象的期望形状之间的差异。错误的原因通常情况下,这个错误是由于数据对象的形状与期望的形状不匹配所导致的。...在Python中,我们可以使用shape属性来获取数据的维度信息。比如,如果我们有一个名为data的数据对象,我们可以使用data.shape来获取其形状信息。...确保数据对象的形状与期望的形状一致。 如果数据的维度不匹配,我们可以尝试使用NumPy的reshape函数来改变数据对象的形状。...检查索引的使用此外,我们还需要检查索引的使用是否正确。错误信息中指出了索引所暗示的形状,我们应该确保我们在使用索引时保持一致。检查索引是否正确是解决这个错误的另一个重要步骤。3.
如果传递了dict,则排序的键将用作键参数,除非它被传递,在这种情况下,将选择值(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueError。...如果为True,请不要使用并置轴上的索引值。结果轴将被标记为0,…,n-1。如果要连接其中并置轴没有有意义的索引信息的对象,这将非常有用。注意,其他轴上的索引值在连接中仍然受到尊重。...用于其他n-1轴的特定索引,而不是执行内部/外部设置逻辑。 keys:序列,默认值无。使用传递的键作为最外层构建层次索引。如果为多索引,应该使用元组。 levels:序列列表,默认值无。...用于构建MultiIndex的特定级别(唯一值)。否则,它们将从键推断。 names:list,default无。结果层次索引中的级别的名称。...pandas文档:http://pandas.pydata.org/pandas-docs/stable/ 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132316
启用自动和明确的数据对齐。 允许直观地获取和设置数据集的子集。 在本节中,我们将重点放在最后一点上:即如何切片、切块和通常获取和设置 pandas 对象的子集。...不同的索引选择 为了支持更明确的基于位置的索引,对象选择已经增加了一些用户请求的内容。pandas 现在支持三种类型的多轴索引。 .loc 主要基于标签,但也可以与布尔数组一起使用。...从具有多轴选择的对象获取值使用以下表示法(以.loc为例,但以下内容也适用于.iloc)。任何轴访问器都可以是空切片:。...警告 当您提供与索引类型不兼容(或可转换)的切片器时,.loc是严格的。例如,在DatetimeIndex中使用整数。这将引发TypeError。...在不同 dtype 的索引之间执行Index.union()时,索引必须转换为公共 dtype。通常,尽管不总是如此,这是对象 dtype。唯一的例外是在整数和浮点数据之间执行联合时。
使用分块 通过将一个大问题分解为一堆小问题,可以使用分块来实现某些工作负载。例如,将单个 CSV 文件转换为 Parquet 文件,并为目录中的每个文件重复此操作。.../docs/user_guide/gotchas.html DataFrame 内存使用情况 在调用 info() 时,DataFrame 的内存使用情况(包括索引)会显示出来。...使用 in 运算符 在 Series 上使用 Python in 运算符测试成员身份在索引中,而不是在值之间。...在编程中,通常的规则是在容器被迭代时不要改变容器。变异将使迭代器无效,导致意外行为。...编程中的一个通用规则是,在迭代容器时不应该改变容器。改变会使迭代器失效,导致意外行为。
我们建议使用StringDtype来存储文本数据。 在 pandas 1.0 之前,object dtype 是唯一的选项。...在StringArray中的缺失值将在比较操作中传播,而不总是像numpy.nan那样比较不相等。 本文档其余部分中的所有内容同样适用于string和object dtype。...我们建议使用StringDtype来存储文本数据。 在 pandas 1.0 之前,object dtype 是唯一的选择。...这在很多方面都是不幸的: 在object dtype 数组中可能会意外存储字符串和非字符串的混合。最好使用专用的 dtype。...(即Series中唯一元素的数量远小于Series的长度),将原始Series转换为category类型,然后在其上使用.str.
你也可以在事后用append=True将现有的级别追加到MultiIndex中,正如你在下图中看到的那样: 其实更典型的是Pandas,当有一些具有某种属性的对象时,特别是当它们随着时间的推移而演变时...这种语法的唯一缺点是,当使用两个索引器时,它会返回一个副本,所以你不能写df.mi[:, 'Oregon'].co['population'] = 10。...这有时可能会让人恼火,但这是在有大量缺失值时给出可预测结果的唯一方法。 考虑一下下面的例子。你希望一周中的哪几天以何种顺序出现在右表中?...,--在纯Pandas中没有直接的对应关系: pdi.insert_level(obj, pos, labels, name)用给定的值添加一个关卡(必要时适当广播),--在纯Pandas中不容易做到...官方Pandas文档有一个表格[4],列出了所有~20种支持的格式。 多指标算术 在整体使用多索引DataFrame的操作中,适用与普通DataFrame相同的规则(见第三部分)。
pipe 使得在方法链中使用您自己或其他库的函数与 pandas 方法一起变得容易。...这实现了几件事情: + 重新排序现有数据以匹配新的标签集 + 在标签位置插入缺失值(NA),在该标签处没有数据时 + 如果指定,使用逻辑填充缺失标签的数据(与处理时间序列数据密切相关)...注意 在编写对性能敏感的代码时,有充分理由花一些时间成为重新索引的高手:许多操作在预对齐数据上更快。添加两个未对齐的 DataFrame 内部触发重新索引步骤。...fillna()和interpolate()不会对索引的顺序执行任何检查。### 重新索引时填充的限制 limit和tolerance参数在重新索引时提供额外的填充控制。...请参见矢量化字符串方法获取完整描述。 排序 pandas 支持三种排序方式:按索引标签排序、按列值排序以及按两者的组合排序。
返回当前时刻的日 datetime.now().day #16 3.返回当前时刻的周数 与当前时刻的周相关的数据有两个,一个是当前时刻是一周中的周几;一个是返回当前时刻所在的周在全年的周里面是第几周...Python中可以选取具体的某一时间对应的值,也可以选某一段时间内的值。...因为时间也是有大小关系的,所以可通过索引方式中的布尔索引来对非索引列的时间进行选取。...1.两个时间之差 经常会用到计算两个时间的差,比如一个用户在某一平台上的生命周期(即用最后一次登录时间 - 首次登陆时间) Python中两个时间做差会返回一个 timedelta 对象,该对象包含天数...Python中实现时间偏移的方式有两种: 第一种借助 timedelta(该对象包含天数、秒、微秒三个等级,所以只能偏移天数、秒、微秒单位的时间) 第二种是用Pandas中的日期偏移量(date offset
# 在conditions列表中的第一个条件得到满足,values列表中的第一个值将作为新特征中该样本的值,以此类推 df6 = df.copy() conditions = [ (df6['...,是进行分组的依据, 如果填入整数n,则表示将x中的数值分成等宽的n份(即每一组内的最大值与最小值之差约相等); 如果是标量序列,序列中的数值表示用来分档的分界值 如果是间隔索引,“ bins”的间隔索引必须不重叠...right :布尔值,默认为True表示包含最右侧的数值 当“ right = True”(默认值)时,则“ bins”=[1、2、3、4]表示(1,2],(2,3],(3,4] 当bins是一个间隔索引时...3 如果为False,则仅返回分箱的整数指示符,即x中的数据在第几个箱子里 当bins是间隔索引时,将忽略此参数 retbins: 是否显示分箱的分界值。...duplicates:如果分箱临界值不唯一,则引发ValueError或丢弃非唯一 # 方法五 数据分箱pd.cut()——最类似于excel 中 lookup的方法 df7 = df.copy() bins
通过在笔记本单元格中运行ls,我们可以检查当前文件夹中的文件: ls # babynames.csv indexes_slicing_sorting.ipynb 当我们使用熊猫来读取数据时...索引、切片和排序 让我们使用pandas来回答以下问题: 2016 年的五个最受欢迎的婴儿名字是? 拆分问题 我们可以将这个问题分解成以下更简单的表格操作: 分割出 2016 年的行。...,并且学会了在pandas中表达以下操作: 操作 pandas 读取 CSV 文件 pd.read_csv() 使用标签或索引来切片 .loc和.iloc 使用谓词对行切片 在.loc中使用布尔值的序列...1920 1940 1960 1980 2000 多个列的分组 我们在 Data8 中看到,我们可以按照多个列分组,基于唯一值来获取分组。...但在处理文本数据时,在使用pandas内置的字符串操作函数通常会更快。
首先,我们将要使用 matplotlib 这个工具,matplotlib 是一个相对底层的 Python 栈中的描点库,所以它比其他的工具库要多敲一些命令来做出一个好看的曲线。...然后我们调用pandas的aggregate函数来获取航空公司数据框架中长度列的均值,然后把每个获取到的值重组到一个新的数据模型里。...我们也添加到id列上以实现查找(apply函数不传index)。 最后,我们重置索引序列以得到所有的特殊值。没有这一步,Bokeh 无法正常运行。...我们可以用它来按长度分解路由。首先把我们的路由分成短、中、长三个距离,并在 route_lengths 里计算出它们各占的百分比。...如果我们不这样做是行不通的,因为它需要在 x 轴上的数值。我们可以看到不少的长名字都出现在早先的 id 中。这可能意味着航空公司在成立前往往有较长的名字。 我们可以使用 seaborn 验证这个直觉。
本文包括以下内容: Pandas 发展现状; 内存优化; 索引; 方法链; 随机提示。 在阅读本文时,我建议你阅读每个你不了解的函数的文档字符串(docstrings)。...有一些获得这些信息的方法: 可以用 unique() 和 nunique() 获取列内唯一的值(或唯一值的数量); >>> df['generation'].unique() array(['Generation...这个数是任意的,但是因为数据框中类型的转换意味着在 numpy 数组间移动数据,因此我们得到的必须比失去的多。 接下来看看数据中会发生什么。...索引 Pandas 是强大的,但也需要付出一些代价。当你加载 DataFrame 时,它会创建索引并将数据存储在 numpy 数组中。这是什么意思?...在得到的数据框中,「年龄」列是索引。 除了了解到「X 代」覆盖了三个年龄组外,分解这条链。第一步是对年龄组分组。
本文包括以下内容: Pandas 发展现状; 内存优化; 索引; 方法链; 随机提示。 在阅读本文时,我建议你阅读每个你不了解的函数的文档字符串(docstrings)。...有一些获得这些信息的方法: 可以用 unique() 和 nunique() 获取列内唯一的值(或唯一值的数量); >>> df[ generation ].unique() array([ Generation...这个数是任意的,但是因为数据框中类型的转换意味着在 numpy 数组间移动数据,因此我们得到的必须比失去的多。 接下来看看数据中会发生什么。...索引 Pandas 是强大的,但也需要付出一些代价。当你加载 DataFrame 时,它会创建索引并将数据存储在 numpy 数组中。这是什么意思?...在得到的数据框中,「年龄」列是索引。 除了了解到「X 代」覆盖了三个年龄组外,分解这条链。第一步是对年龄组分组。
---- 第01章 Pandas基础 第02章 DataFrame运算 第03章 数据分析入门 第04章 选取数据子集 第05章 布尔索引 第06章 索引对齐 第07章 分组聚合、过滤、转换...# 选取不连续的行和列 In[27]: college.iloc[[100, 200], [7, 15]] Out[27]: ?...# 用loc和列表,选取不连续的行和列 In[28]: rows = ['GateWay Community College', 'American Baptist Seminary of the West...按照字母切片 # 读取college数据集;尝试选取字母顺序在‘Sp’和‘Su’之间的学校 In[57]: college = pd.read_csv('data/college.csv', index_col...# 再尝试选取字母顺序在‘Sp’和‘Su’之间的学校 In[60]: pd.options.display.max_rows = 6 In[61]: college.loc['Sp':'Su'] Out
loop (mean ± std. dev. of 7 runs, 1000 loops each) 更多 # 使用布尔索引和标签选取多列 In[26]: states =['TX', 'CA',...用唯一和有序索引选取 # 读取college数据集,使用STABBR作为行索引,检查行索引是否有序 In[27]: college = pd.read_csv('data/college.csv')...INSTNM作为行索引,检测行索引是否唯一 In[33]: college_unique = college.set_index('INSTNM') college_unique.index.is_unique...确定股票收益的正态值 # 加载亚马逊的股票数据,使用Data作为行索引 In[57]: amzn = pd.read_csv('data/amzn_stock.csv', index_col='Date...# 因为criteria_col是包含行索引的一个Series,必须要使用底层的ndarray,才能使用,iloc In[98]: movie.iloc[:, criteria_col.values]
DataFrame数据由三个部分组成,行索引、列索引、数据。pandas读取DataFrame数据时,如果数据行数和列数很多,会自动将数据折叠,中间的显示为“...”。...设置某一列为行索引 上面的DataFrame数据中,行索引是0~4725的整数,假如要设置日期为行索引,可以使用set_index()方法设置。...如果要将某列数据作为行索引,同时数据中也有该列数据,可以在set_index()中指定drop参数为False(set_index()中drop参数默认为True)。 2....设置多重索引MultiIndex 使用set_index()设置行索引时可以同时设置多个列为行索引。...当一列中的数据不唯一时,可以使用两列或多列来组合成多重行索引,当需要将数据处理成多维数据时,也可以用多重索引。
领取专属 10元无门槛券
手把手带您无忧上云