: float64 In [24]: "e" in s Out[24]: True In [25]: "f" in s Out[25]: False 如果一个标签不包含在索引中,将会引发异常: In...如果传递了索引和/或列,你将保证结果 DataFrame 的索引和/或列。因此,一个 Series 字典加上一个特定索引将丢弃所有与传递索引不匹配的数据。...: float64 In [24]: "e" in s Out[24]: True In [25]: "f" in s Out[25]: False 如果标签不包含在索引中,则会引发异常: In...: float64 In [24]: "e" in s Out[24]: True In [25]: "f" in s Out[25]: False 如果标签不包含在索引中,则会引发异常: In...如果传递了索引和/或列,则保证了结果 DataFrame 的索引和/或列。因此,字典的 Series 加上特定索引将丢弃所有与传递索引不匹配的数据。
等于shape的元素的乘积。 ndarray.dtype:数组中元素类型的对象。可以使用标准的Python类型创建或指定dtype。另外NumPy提供它自己的类型。...例如,元素为 float64 类型的数组的 itemsize 为8(=64/8),而 complex32 类型的数组的 itemsize 为4(=32/8)。...它等于 ndarray.dtype.itemsize 。 ndarray.data:该缓冲区包含数组的实际元素。通常,我们不需要使用此属性,因为我们将使用索引访问数组中的元素。 1...._exceptions.UFuncTypeError: Cannot cast ufunc 'add' output from dtype('float64') to dtype('int32') with...>>> a[2] 8 >>> a[2:5] #不包含最后一个 array([ 8, 27, 64], dtype=int32) >>> a[:6:2] = -1000 #从最开始到6(不含6),每2
: float64 行索引 # 行索引 print(type(df_obj.loc[0])) # 返回Series类型 df_obj.loc[0] # 返回对应行值 a 0.983790 b 1.063804 c 0.854634 d -1.269025 Name: 0, dtype: float64 不连续索引 #不连续列索引 df_obj...a b c 0 2.0 2.0 100.0 1 2.0 2.0 100.0 2 100.0 100.0 100.0 函数应用 可以与NumPy中的ufunc函数结合操作 # Numpy ufunc...3 -0.498036 dtype: float64 df.apply(lambda x : x.max(), axis=1) # 按列比较(得到每行的最大值) 0 -0.938212 1...) # # 按行比较(得到每列的最大值) 0 0.198618 1 0.344484 2 -0.893815 3 -0.498036 dtype: float64 使用applymap
例如,在具有可空整数 dtype 的 Series 中存在缺失值时,它将使用 NA: In [21]: s = pd.Series([1, 2, None], dtype="Int64") In [22...NA> 警�� 目前,涉及 ndarray 和NA的 ufunc 将返回一个填充有 NA 值的对象 dtype。...更多关于 ufunc 的信息,请参阅 DataFrame 与 NumPy 函数的互操作性。...`dropna()`删除具有缺失数据的行或列。...例如,在具有可空整数 dtype 的Series中存在缺失值时,它将使用NA: In [21]: s = pd.Series([1, 2, None], dtype="Int64") In [22]:
assign 函数签名就是 **kwargs。键是新字段的列名,值为是插入值(例如,Series 或 NumPy 数组),或把 DataFrame 当做调用参数的函数。...实现此操作的首选方法是: df.sub(df['A'], axis=0) 有关匹配和广播操作的显式控制,请参阅二进制操作。...: float64 0.25.0 版更改: 多个 Series 传递给 ufunc 时,会先进行对齐。...Pandas 可以自动对齐 ufunc 里的多个带标签输入数据。例如,两个标签排序不同的 Series 运算前,会先对齐标签。...object(3) memory usage: 18.1+ KB 尽管 to_string 有时不匹配控制台的宽度,但还是可以用 to_string 以表格形式返回 DataFrame 的字符串表示形式
Pandas 包含一些有用的调整,但是:对于一元操作,如取负和三角函数,这些ufunc将保留输出中的索引和列标签,对于二元操作,如加法和乘法,将对象传递给ufunc时,Pandas 将自动对齐索引。...3 54.598150 dtype: float64 ''' 或者,对于稍微复杂的计算: np.sin(df * np.pi / 4) A B C D 0 -1.000000 7.071068e...: float64 ''' 所得数组包含两个输入数组的索引的并集,可以使用这些索引上的标准 Python 集合算法来确定: area.index | population.index # Index(...pd.Series([1, 3, 5], index=[1, 2, 3]) A + B ''' 0 NaN 1 5.0 2 9.0 3 NaN dtype: float64...2 9.0 3 5.0 dtype: float64 ''' 数据帧中的索引对齐 在DataFrames上执行操作时,列和索引都会发生类似的对齐: A = pd.DataFrame(rng.randint
数据可以是任何 NumPy 数据类型,标签是序列的索引。...300 qx NaN Name: foobarbazqux, dtype: float64 ''' 数据帧(DataFrame) DataFrame是表格数据结构,包含列的有序集合。...每列可以是不同的类型。 DataFrame同时具有行索引和列索引,类似于Series的字典。行和列操作大致是对称实现的。 索引DataFrame时返回的列是底层数据的视图,而不是副本。...unempl 0 2012 VA 5.0 NaN 1 2013 VA 5.1 NaN 2 2014 VA 5.2 6.0 3 2014 MD 4.0 6.0 4 2015 MD 4.1 6.1 行的重新索引将返回具有指定索引的新...b 1 c 2 dtype: int64 ''' 从带标签的Series中选择切片(注意包含终点): ser_2['a':'b'] ''' a 1 b 1 dtype: int64
::: 重置索引,并与其它对象对齐 提取一个对象,并用另一个具有相同标签的对象 reindex 该对象的轴。这种操作的语法虽然简单,但未免有些啰嗦。...如果必须对值进行迭代,请务必注意代码的性能,建议在 cython 或 numba 环境下实现内循环。参阅增强性能一节,查看这种操作方法的示例。...dtype: object 2 a 3 b c Name: 2, dtype: object ::: tip 注意 iterrows() 返回的是 Series 里的每一行数据,该操作不会保留每行数据的数据类型...Out[256]: dtype('float64') In [257]: df_orig['int'].dtype Out[257]: dtype('int64') 要想在行迭代时保存数据类型,最好用...itertuples() 保存值的数据类型,而且比 iterrows() 快。 ::: tip 注意 包含无效 Python 识别符的列名、重复的列名及以下划线开头的列名,会被重命名为位置名称。
一个方便的dtypes属性用于 DataFrame 返回一个 Series,其中包含每列的数据类型。...In [349]: dft["A"].dtype Out[349]: dtype('float64') 如果 pandas 对象包含具有多种数据类型在单个列中的数据,则将选择列的数据类型以容纳所有数据类型...C float64 dtype: object DataFrame.to_numpy()将返回较低的公共分母,意味着可以容纳结果同质化的 NumPy 数组中的所有类型的数据类型。...C float64 dtype: object DataFrame.to_numpy()将返回数据类型的最低公共分母,即可以容纳结果中所有类型的同类数据类型 NumPy 数组。...: object select_dtypes()有两个参数include和exclude,允许你说“给我这些数据类型的列”(include)和/或“给我不包含这些数据类型的列”(exclude)。
推荐阅读时间:4min~6min 文章内容:Numpy基本运算操作 上一篇:Numpy 修炼之道 (3)—— 数据类型 Numpy 中数组上的算术运算符使用元素级别。...3], [3, 3, 3]]) >>> a.dtype dtype('int32') >>> b.dtype dtype('float64') >>> b += a >>> b array...= b Traceback (most recent call last): File "", line 1, in TypeError: Cannot cast ufunc...add output from dtype('float64') to dtype('int32') with casting rule 'same_kind' 当使用不同类型的数组操作时,结果数组的类型对应于更一般或更精确的数组...由于定义 a时,数据类型指定为np.int32,而 a+b 生成的数据类型为 np.float64,所以自动转换出错。
NumPy入门 NumPy数组 如果要对嵌套列表进行数组运算,可以使用循环来完成。...即使 array1 除了最后一个元素(浮点数)之外全是整数,但由于 NumPy 对同构的要求,这个数组的数据类型依然是 float64,这个类型足以容纳所有的元素。...要想了解一个数组的数据类型,可以访问它的 dtype 属性 In [6]: array1.dtype Out[6]: dtype('float64') dtype 返回的是 float64 而不是第 3...你可能已经猜到了,NumPy 使用的是它自己的数值数据类型,它们比 Python 的数据类型粒度要细。通常这都不是问题,因为大部分时候 Python 和 NumPy 中的不同数据类型可以自动转换。...], , 2.23606798, 2.44948974]]) NumPy 的一些 ufunc 也可以用作数组的方法。
当你的 DataFrame 包含不同数据类型时,DataFrame.values 可能涉及复制数据并将值强制转换为一个公共的数据类型,这是一个相对昂贵的操作。...列与应用函数返回的Series的索引匹配。 如果应用的函数返回任何其他类型,最终输出是一个Series。...In [349]: dft["A"].dtype Out[349]: dtype('float64') 如果 pandas 对象包含具有多种数据类型在单个列中的数据,则列的数据类型将被选择以容纳所有数据类型...values具有以下缺点: 当您的 Series 包含扩展类型时,不清楚Series.values是返回 NumPy 数组还是扩展数组。...当您的 DataFrame 包含不同数据类型时,DataFrame.values可能涉及复制数据并将值强制转换为公共 dtype,这是一个相对昂贵的操作。
可直接使用NumPy的函数 示例代码: # Numpy ufunc 函数 df = pd.DataFrame(np.random.randn(5,4) - 1) print(df) print(np.abs...丢弃缺失数据:dropna() 根据axis轴方向,丢弃包含NaN的行或列。...: float64 MultiIndex索引对象 打印这个Series的索引类型,显示是MultiIndex 直接将索引打印出来,可以看到有lavels,和labels两个信息。...0.015426 c -0.452313 d -0.051063 dtype: float64 常用于分组操作、透视表的生成等 交换分层顺序 1. swaplevel() .swaplevel...-2.007771 2 -1.130825 3 -0.758540 4 -0.007470 dtype: float64 常用的统计描述 describe 产生多个统计数据 示例代码:
在pandas中,提供了以下两种基本的数据结构 Series DataFrame 熟悉R的朋友,理解这两个概念非常简单,Series是一维结构,且带有标签,其中的元素都是同种类型,类比R语言中的向量,...2 3.0 3 NaN 4 5.0 Name: A, dtype: float64 # data参数指定数据 # index参数指定标签 # 默认标签类似数组的下标索引 >>> s = pd.Series...float64 # 通过下标或者标签名字可以访问其中的元素 >>> s[0] 1.0 >>> s['A'] 1.0 pandas中的缺失值用NaN来表示,DataFrame对象示例如下 >>> df...(5, 5) # 每一列的数据类型 >>> df.dtypes A float64 B float64 C float64 D float64 E float64 dtype: object # 数据框中的所有值...查看内容 实际中的数据框框往往包含非常多的行和列,通过head和tail方法可以简单查看头尾的几行,示例如下 >>> df.head(n=1) A B C D E A1 0.418639
: float64 默认情况下,apply() 调用的函数返回的类型会影响 DataFrame.apply 输出结果的类型。...函数返回的是 Series 时,最终输出的结果是 DataFrame。输出的列与函数返回的 Series 索引相匹配。 函数返回其它任意类型时,输出结果是 Series。...: float64 用字典实现聚合 指定为哪些列应用哪些聚合函数时,需要把包含列名与标量(或标量列表)的字典传递给 DataFrame.agg。...里包含不能执行聚合操作的多种 Dtype 时,.agg 只计算可以执行聚合的列。...transform() 接受单个函数;与 ufunc 等效。
使用高效的数据类型 默认的 pandas 数据类型并不是最节省内存的。特别是对于具有相对少量唯一值的文本数据列(通常称为“低基数”数据),这一点尤为明显。...使用高效的数据类型 默认的 pandas 数据类型不是最节省内存的。对于具有相对少量唯一值的文本数据列(通常称为“低基数”数据),这一点尤为明显。...这些数据结构不一定是典型的“大部分为 0”的稀疏数据。相反,您可以将这些对象视为“压缩的”,其中任何与特定值匹配的数据(NaN / 缺失值,尽管可以选择任何值,包括 0)都被省略。...nan表示数组中的nan元素实际上并未存储,只有非nan元素。这些非nan元素具有float64 dtype。 稀疏对象存在是为了内存效率的原因。...SparseArray.dtype 属性存储两个信息 非稀疏值的数据类型 标量填充值 In [19]: sparr.dtype Out[19]: Sparse[float64, nan]
本节介绍 Pandas 基础数据结构,包括各类对象的数据类型、索引、轴标记、对齐等基础操作。...In [18]: s.dtype Out[18]: dtype('float64') Series 的数据类型一般是 NumPy 数据类型。...不过,Pandas 和第三方库在一些方面扩展了 NumPy 类型系统,即扩展数据类型。比如,Pandas 的类别型数据与可空整数数据类型。更多信息,请参阅数据类型 。...矢量操作与对齐 Series 标签 Series 和 NumPy 数组一样,都不用循环每个值,而且 Series 支持大多数 NumPy 多维数组的方法。...总之,让不同索引对象操作的默认结果生成索引并集,是为了避免信息丢失。就算缺失了数据,索引标签依然包含计算的重要信息。当然,也可以用dropna 函数清除含有缺失值的标签。
领取专属 10元无门槛券
手把手带您无忧上云