首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python替代Excel Vba系列(三):pandas处理不规范数据

因此,本文将使用稍微复杂的数据做演示,充分说明 pandas如何灵活处理各种数据。 本文要点: 使用 pandas 处理不规范数据。 pandas 中的索引。...,那么最难安装的 pandasnumpy 都不会是问题。....options(np.array),因此我们把整块数据加载到 numpy数组中。numpy 数组可以很方便做各种切片。 header=arr[2] , 取出第3行作为标题。...这里不能直接整数,因为 python 怕有精度丢失,直接转换 int 会报错。因此先 float,再 int。...---- 理解了索引,那么就要说一下如何变换行列索引。 pandas 中通过 stack 方法,可以把需要的索引转成行索引。 用上面的数据作为例子,我们需要左边的行索引显示每天上下午的气温和降雨量。

5K30
您找到你想要的搜索结果了吗?
是的
没有找到

Pandas图鉴(三):DataFrames

PandasNumPy 数组带来的两个关键特性是: 异质类型 —— 每一都允许有自己的类型 索引 —— 提高指定的查询速度 事实证明,这些功能足以使Pandas成为Excel和数据库的强大竞争者...下一个选择是用NumPy向量的dict或二维NumPy数组构造一个DataFrame: 请注意第二种情况下,人口值是如何被转换为浮点数的。实际上,这发生在构建NumPy数组的早期。...如果你 "即时" 添加流媒体数据,则你最好的选择是使用字典或列表,因为 Python 在列表的末尾透明预分配了空间,所以追加的速度很快。...所有的算术运算都是根据行和的标签来排列的: 在DataFrames和Series的混合操作中,Series的行为(和广播)就像一个行-向量,并相应被对齐: 可能是为了与列表和一维NumPy向量保持一致...要将其转换为宽格式,请使用df.pivot: 这条命令抛弃了与操作无关的东西(即索引和价格),并将所要求的三信息转换为长格式,客户名称放入结果的索引中,产品名称放入其中,销售数量放入其 "

32220

【精心解读】用pandas处理大数据——节省90%内存消耗的小贴士

对于包含数值型数据(比如整型和浮点型)的数据块,pandas会合并这些,并把它们存储为一个Numpy数组(ndarray)。Numpy数组是在C数组的基础上创建的,其值在内存中是连续存储的。...选理解子类(Subtypes) 刚才我们提到,pandas在底层数值型数据表示成Numpy数组,并在内存中连续存储。这种存储方式消耗较少的空间,并允许我们较快速访问数据。...由于pandas使用相同数量的字节来表示同一类型的每一个值,并且numpy数组存储了这些值的数量,所以pandas能够快速准确返回数值型所消耗的字节量。...这对我们原始dataframe的影响有限,这是由于它只包含很少的整型。 同理,我们再对浮点型进行相应处理: 我们可以看到所有的浮点型都从float64换为float32,内存用量减少50%。...总结 我们学习了pandas如何存储不同的数据类型,并利用学到的知识将我们的pandas dataframe的内存用量降低了近90%,仅仅只用了一点简单的技巧: 数值型降级到更高效的类型 字符串列转换为类别类型

8.5K50

Python 全栈 191 问(附答案)

十进制二进制,十六进制的函数各叫什么? 什么是函数作用域的 LEGB 规则 ? range(1,10,3) 返回一个什么样的迭代器? zip 函数能实现功能? 如何动态删除类上的某个属性?...使用 NumPy 创建一个 [3,5] 所有元素为 True 的数组 数组所有奇数替换为 -1; 提取出数组中所有奇数 求 2 个 NumPy 数组的交集、差集 NumPy 二维数组交换 2 ,反转行...方法总结 Pandas 的 melt DataFrame 透视为长 DataFrame 例子 Pandas 的 pivot 和 pivot_table 透视使用案例 Pandas 的 crosstab...频次透视函数使用例子 给定两个 DataFrame,它们至少存在一个名称相同的如何连接两个表?...DataFrame 上快速对某些展开特征工程,使用 map 如何做到?

4.2K20

使用python创建数组的方法

本文介绍两种在python里创建数组的方法。第一种是通过字典直接创建,第二种是通过转换列表得到数组。...方法1.字典创建 (1)导入功能 (2)创立字典 (3)字典带上索引转换为数组 代码示例如下: import numpy as np import pandas as pd data={“name...他返回“num-4”(第三为num)个等间距的样本,在区间[start-1, stop-4]中 方法2:列表转换成数组 (1)导入功能,创建各个列表并加入元素 (2)列表换为数组 (3)把各个数组合并...(4)可视需要数组 代码示例如下: import pandas as pd import numpy as np list1=[‘name’,‘sex’,‘school’,‘Chinese’...,df2,df3,df4],axis=1) data.columns=[1,2,3,4] data=data.T 运行结果如下: 扩展: data.T 可数组 data.columns

8.8K20

业界 | 用Python做数据科学时容易忘记的八个要点!

为了一劳永逸巩固我对这些概念的理解,并为大家免去一些StackOverflow的搜索,我在文章中整理了自己在使用Python,NumPyPandas时总是忘记的东西。...具体来说,map函数接受一个列表并通过对每个元素执行某种操作来将其转换为列表。在下面的示例中,它遍历每个元素并将其乘以2的结果映射到新列表。请注意,这里的list函数只是输出转换为列表类型。...所以给定一个起始值和终止值,并指定返回值的个数,linspace根据你指定的个数在NumPy数组中划好等分。这对于数据可视化和在定义图表坐标轴时特别有用。...无论如何,这些功能基本上就是以特定方式组合dataframe的方法。可能很难评判在什么时候使用哪个最好,所以让我们都回顾一下。...Pandas内置的pivot_table函数电子表格样式的数据透视表创建为DataFrame

1.4K00

解决AttributeError: DataFrame object has no attribute tolist

因为DataFramePandas库中的一个二维数据结构,它的数据类型和操作方法与列表不同,所以没有直接的​​.tolist()​​方法。 在下面的文章中,我们讨论如何解决这个错误。...values​​方法返回一个包含DataFrame的值的二维数组,而后面的​​.tolist()​​方法将该二维数组换为列表。...要解决这个错误,我们需要使用​​.values.tolist()​​方法DataFrame对象转换为列表。 希望本篇文章能帮助你解决这个错误,并更好使用Pandas库进行数据分析和处理。...tolist()​​​方法是Pandas库中DataFrame对象的一个方法,用于DataFrame对象转换为列表形式。...总之,​​.tolist()​​方法非常有用,可以方便DataFrame对象转换为嵌套列表,以满足某些数据处理或分析的需求。

60130

解决pandas.core.frame.DataFrame格式数据与numpy.ndarray格式数据不一致导致无法运算问题

我们尝试A转换为ndarray进行运算,但是会出现类型不匹配的错误。...= series_a + 1上述代码中,我们创建了一个新的变量​​series_a​​,A转换为ndarray并使用pd.Series()将其转换为pandas的Series数据格式。...通过DataFrame的某一换为ndarray,并使用pd.Series()将其转换为pandas的Series数据格式,可以避免格式不一致的错误。...要解决DataFrame格式数据与ndarray格式数据不一致导致无法运算的问题,可以通过DataFrame的某一换为ndarray并重新赋值给新的变量,然后再进行运算。...通过DataFrame的某一换为ndarray,并重新赋值给新的变量,我们可以避免格式不一致的错误,成功进行运算。numpy库的ndarray什么是ndarray?

33420

资源 | 23种Pandas核心操作,你需要过一遍吗?

选自 Medium 作者:George Seif 机器之心编译 参与:思源 本文自机器之心,转载需授权 Pandas 是一个 Python 软件库,它提供了大量能使我们快速便捷地处理数据的函数和方法...Pandas 是基于 NumPy 构建的库,在数据处理方面可以把它理解为 NumPy 加强版,同时 Pandas 也是一项开源项目。...DataFrame 输出到一张表: print(tabulate(print_table, headers=headers)) 当「print_table」是一个列表,其中列表元素还是新的列表,「headers...(12)目标类型转换为浮点型 pd.to_numeric(df["feature_name"], errors='coerce') 目标类型转化为数值从而进一步执行计算,在这个案例中为字符串。...(13) DataFrame换为 NumPy 数组 df.as_matrix() (14)取 DataFrame 的前面「n」行 df.head(n) (15)通过特征名取数据 df.loc[feature_name

2.9K20

针对SAS用户:Python数据分析库pandas

我们说明一些有用的NumPy对象来作为说明pandas的方式。 对于数据分析任务,我们经常需要将不同的数据类型组合在一起。...SAS/IML更接近的模拟NumPy数组。但SAS/IML 在这些示例的范围之外。 ? 一个Series可以有一个索引标签列表。 ? Series由整数值索引,并且起始位置是0。 ?...可以插入或替换缺失值,而不是删除行和。.fillna()方法返回替换空值的Series或DataFrame。下面的示例所有NaN替换为零。 ? ?...正如你可以从上面的单元格中的示例看到的,.fillna()函数应用于所有的DataFrame单元格。我们可能不希望df["col2"]中的缺失值值替换为零,因为它们是字符串。...从技术架构师开始,最近担任顾问,他建议企业领导如何培养和成本有效管理他们的分析资源组合。最近,这些讨论和努力集中于现代化战略,鉴于行业创新的增长。

12K20

Numpypandas的使用技巧

'' '''2、np.cumsum()返回一个数组像sum()这样的每个元素相加,放到相应位置''' '''NumPy数组实际上被称为ndarray NumPy最重要的一个特点是N维数组对象...ndarray,它是一系列同类型数据的集合 1、创建数组序列传递给numpy的array()函数即可,从现有的数据创建数组,array(深拷贝),asarray(浅拷贝); 或者使用arange...0,大于80,替换为90 print(b) 指定轴求和 np.sum(参数1: 数组; 参数2: axis=0/1,0表示1表示行) 指定轴最大值np.max(参数1: 数组;...△ np.r_[] 按行上下连接两个矩阵 6、NumPy 数组操作 △ n.reshape(arr,newshape,order=)数组,新形状,"C"-按行、"F"-按、"A"-原顺序、"k"-元素在内存中痴线顺序...△ n.transpose()对换数组的维度,矩阵的置 △ ndarray.T 与上类似,用于矩阵的置 △ n.concatenate((a1, a2, ...), axis)沿指定轴连接同形数组

3.5K30

Pandas数据处理——渐进式学习1、Pandas入门基础

查看列名 head查看 DataFrame 头部数据 tail查看 DataFrame 尾部数据 Numpy数组 数据统计摘要describe函数 横纵坐标转换位置 反向排列数据 获取数据 使用[...、不同索引的数据轻松地转换为 DataFrame 对象; 基于智能标签,对大型数据集进行切片、花式索引、子集分解等操作; 直观合并(merge)、**连接(join)**数据集; 灵活重塑(reshape...install numpy 生成对象·一维Series 用值列表生成 Series 时,Pandas 默认自动生成整数索引: import pandas as pd import numpy as...# 通过numpy生成一个6行4的二维数组,行用index声明行标题,用columns声明标题 df = pd.DataFrame(np.random.randn(6, 4), index=dates...Numpy数组 import pandas as pd import numpy as np dates = pd.date_range('20230213', periods=6) df = pd.DataFrame

2.2K50

Python数据分析-pandas库入门

pandas使用最多的数据结构对象是 DataFrame,它是一个面向(column-oriented)的二维表结构,另一个是 Series,一个一维的标签化数组对象。...pandas 兼具 NumPy 高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,能更加便捷完成重塑、切片和切块、聚合以及选取数据子集等操作。...使用 NumPy 函数或类似 NumPy 的运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引值的链接,代码示例: obj2*2 np.exp(obj2) 还可以 Series...例如,我们可以给那个空的 “debt” 赋上一个标量值或一组值(数组列表形式),代码示例: frame2.debt = np.arange(6.) frame2 注意:列表数组赋值给某个时,...作为 pandas 库的基本结构的一些特性,如何创建 pandas 对象、指定 columns 和 index 创建 Series 和 DataFrame 对象、赋值操作、属性获取、索引对象等,这章介绍操作

3.7K20

8 个 Python 高效数据分析的技巧

具体来说,map通过对列表中每个元素执行某种操作并将其转换为列表。在本例中,它遍历每个元素并乘以2,构成新列表。请注意,list()函数只是输出转换为列表类型。...所以给定区间start和end,以及等分分割点数目num,linspace返回一个NumPy数组。这对绘图时数据可视化和声明坐标轴特别有用。...在Pandas中,删除一或在NumPy矩阵中求和值时,可能会遇到Axis。...Concat允许用户在表格下面或旁边追加一个或多个DataFrame(取决于您如何定义轴)。 ? Merge多个DataFrame合并指定主键(Key)相同的行。 ?...如果你不太熟悉Series,可以将它想成类似Numpy数组。 Apply一个函数应用于指定轴上的每一个元素。

2.7K20

8个Python高效数据分析的技巧

具体来说,map通过对列表中每个元素执行某种操作并将其转换为列表。 在本例中,它遍历每个元素并乘以2,构成新列表。 请注意,list()函数只是输出转换为列表类型。...所以给定区间start和end,以及等分分割点数目num,linspace返回一个NumPy数组。 这对绘图时数据可视化和声明坐标轴特别有用。...---- 在Pandas中,删除一或在NumPy矩阵中求和值时,可能会遇到Axis。...Concat允许用户在表格下面或旁边追加一个或多个DataFrame(取决于您如何定义轴)。 ? Merge多个DataFrame合并指定主键(Key)相同的行。 ?...Pandas Apply ---- ---- Apply是为Pandas Series而设计的。如果你不太熟悉Series,可以将它想成类似Numpy数组

2.1K20

8个Python高效数据分析的技巧。

Linspace以指定数目均匀分割区间,所以给定区间start和end,以及等分分割点数目num,linspace返回一个NumPy数组。 这对绘图时数据可视化和声明坐标轴特别有用。...在Pandas中,删除一或在NumPy矩阵中求和值时,可能会遇到Axis。...Concat允许用户在表格下面或旁边追加一个或多个DataFrame(取决于您如何定义轴)。 ? Merge多个DataFrame合并指定主键(Key)相同的行。 ?...7 Pandas Apply Apply是为Pandas Series而设计的。如果你不太熟悉Series,可以将它想成类似Numpy数组。 Apply一个函数应用于指定轴上的每一个元素。...使用Apply,可以DataFrame(是一个Series)的值进行格式设置和操作,不用循环,非常有用!

2.2K10

这 8 个 Python 技巧让你的数据分析提升数倍!

具体来说,map通过对列表中每个元素执行某种操作并将其转换为列表。在本例中,它遍历每个元素并乘以2,构成新列表。请注意,list()函数只是输出转换为列表类型。...所以给定区间start和end,以及等分分割点数目num,linspace返回一个NumPy数组。这对绘图时数据可视化和声明坐标轴特别有用。...---- ---- 在Pandas中,删除一或在NumPy矩阵中求和值时,可能会遇到Axis。...Concat允许用户在表格下面或旁边追加一个或多个DataFrame(取决于您如何定义轴)。 ? Merge多个DataFrame合并指定主键(Key)相同的行。 ?...Pandas Apply ---- ---- Apply是为Pandas Series而设计的。如果你不太熟悉Series,可以将它想成类似Numpy数组

1.9K10
领券