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

直观地解释和可视化每个复杂的DataFrame操作

初始DataFrame中将成为索引的列,并且这些列显示为唯一值,而这两列的组合将显示为值。这意味着Pivot无法处理重复的值。 ? 旋转名为df 的DataFrame的代码 如下: ?...默认情况下,合并功能执行内部联接:如果每个DataFrame的键名均未列另一个键中,则该键不包含在合并的DataFrame中。...如果不是,则“ join”和“ merge”定义方面具有非常相似的含义。 Concat 合并和连接是水平工作,串联或简称为concat,而DataFrame是按行(垂直)连接的。...请注意,concat是pandas函数,而不是DataFrame之一。因此,它接受要连接的DataFrame列表。 如果一个DataFrame的另一列未包含,默认情况下将包含该列,缺失值列为NaN。...Append是组合两个DataFrame另一种方法,但它执行的功能与concat相同,效率较低且用途广泛。 ----

13.3K20

python:Pandas里千万不能做的5件事

作为一个进入数据分析领域之前干过开发的攻城狮,我看到我的同行以及新手使用 Pandas 时会犯很多低级错误。 今天我说出这五个坑,让大家别一而再,再而三的掉坑里。...修复这些错误能让你的代码逻辑更清晰,更易读,而且把电脑内存用到极致。 错误1:获取和设置值特别慢 这不能说是谁的错,因为 Pandas 中获取和设置值的方法实在太多了。...Modin 的作用更多的是作为一个插件而不是一个库来使用,因为它使用 Pandas 作为后备,不能单独使用。 Modin 的目标是悄悄地增强 Pandas,让你在不学习新库的情况下继续工作。...错误3:让Pandas消耗内存来猜测数据类型 当你把数据导入到 DataFrame 中,没有特别告诉 Pandas 列和数据类型时,Pandas 会把整个数据集读到内存中,只是为了弄清数据类型而已。...指出的,另一种确保内存干净的方法是函数中执行操作。

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

数据科学 IPython 笔记本 7.9 组合数据集:连接和附加

C 0 A0 B0 C0 1 A1 B1 C1 2 A2 B2 C2 另外,我们将创建一个简单的类,允许我们并排显示多个DataFrame。...1 A3 B3 pd.concat([x, y], ignore_index=True): A B 0 A0 B0 1 A1 B1 2 A2 B2 3 A3 B3 添加MultiIndex的键 另一种选择是使用...使用join的连接 我们刚看到的简单示例中,我们主要使用共享列名来连接DataFrame。实际上,来自不同来源的数据可能具有不同的列名称集,而pd.concat在这种情况下提供了几个选项。...D 3 B3 C3 D3 4 B4 C4 D4 pd.concat([df5, df6], join='inner'): B C 1 B1 C1 2 B2 C2 3 B3 C3 4 B4 C4 另一种选择是...在下一节中,我们将介绍另一种更强大的方法,来组合来自多个源的数据,即pd.merge中实现的数据库风格的合并/连接。

82420

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

换句话说,DataFrame看起来很像SAS数据集(或关系表)。下表比较SAS中发现的pandas组件。 ? 第6章,理解索引中详细地介绍DataFrame和Series索引。...5 rows × 27 columns OBS=nSAS中确定用于输入的观察数。 PROC PRINT的输出在此处不显示。 下面的单元格显示的是范围按列的输出。...PROC PRINT的输出在此处不显示。 处理缺失数据 分析数据之前,一项常见的任务是处理缺失数据。Pandas使用两种设计来表示缺失数据,NaN(非数值)和Python None对象。...用于检测缺失值的另一种方法是通过对链接属性.isnull().any()使用axis=1参数逐列进行搜索。 ? ? ? ?...记录删除部分为0.009% 除了错误的情况,.dropna()是函数是静默的。我们可以应用该方法后验证DataFrame的shape。 ?

12.1K20

有比Pandas 更好的替代吗?对比Vaex, Dask, PySpark, Modin 和Julia

比如,如果数据集超过了内存的大小,就必须选择一种替代方法。但是,如果在内存合适的情况下放弃Pandas使用其他工具是否有意义呢?...Dask仅提供一种方法,即set_index。按定义索引排序。 我们的想法是使用Dask来完成繁重的工作,然后将缩减后的更小数据集移动到pandas上进行最后的处理。这就引出了第二个警告。...一种工具可以非常快速地合并字符串列,而另一种工具可以擅长整数合并。 为了展示这些库有多快,我选择了5个操作,并比较了它们的速度。...但在相对较小的数据上使用Spark不会产生理想的速度提高。 Vaex 到目前为止,我们已经看到了将工作分散更多计算机核心之间以及群集中通常有许多计算机之间的平台。...考虑到它们更复杂的语法、额外的安装要求和缺乏一些数据处理能力,这些工具不能作为pandas的理想替代品。 Vaex显示了在数据探索过程中加速某些任务的潜力。更大的数据集中,这种好处会变得更明显。

4.5K10

30 个小例子帮你快速掌握Pandas

也可以把nrows和skiprows结合使用,就相当于MySQL里的limit 500 offset 5000 4.抽样 创建DataFrame后,我们可能希望抽取一个小样本以便于进行工作。...8.删除缺失值 处理缺失值的另一种方法是删除它们。“已退出”列中仍缺少值。以下代码将删除缺少任何值的行。...DataFrame现在没有任何缺失值。 df.isna().sum().sum() --- 0 9.根据条件选择行 某些情况下,我们需要适合某些条件的观察值(即行)。...16.带删除的重置索引 某些情况下,我们需要重置索引并同时删除原始索引。考虑从DataFrame中抽取样本的情况。该示例将保留原始DataFrame的索引,因此我们要重置它。...这些值显示以字节为单位使用了多少内存。 23.分类数据类型 默认情况下,分类数据与对象数据类型一起存储。但是,这可能会导致不必要的内存使用,尤其是当分类变量的基数较低时。

10.6K10

Pandas图鉴(三):DataFrames

这意味着改变原始数组中的值会改变DataFrame,反之亦然。此外,它还可以节省内存。 这种模式也可以一种情况下启用(NumPy向量的dict),通过设置copy=False。...NumPy 数组和 Pandas DataFrame都没有这样做。另一种方法(如果你事先知道行的数量)是用类似 DataFrame(np.zeros) 的东西来手动预分配内存。...DataFrame有两种可供选择的索引模式:loc用于通过标签进行索引,iloc用于通过位置索引进行索引。 Pandas中,引用多行/列是一种复制,而不是一种视图。...最后一种情况,该值将只切片的副本上设置,而不会反映在原始df中(将相应地显示一个警告)。 根据情况的背景,有不同的解决方案: 你想改变原始数据框架df。...现在,如果要合并的列已经右边DataFrame的索引中,请使用join(或者用right_index=True进行合并,这完全是同样的事情): join()默认情况下做左外连接 这一次,Pandas

34620

删除重复值,不只Excel,Python pandas更行

图5 列表或数据表列中查找唯一值 有时,我们希望在数据框架列的列表中查找唯一值。在这种情况下,我们不会使用drop_duplicate()。...pandas Series vs pandas数据框架 对于Excel用户来说,很容易记住他们之间的差异。数据框架是一个表或工作表,而pandas Series是该表/表中的一列。...pandas Series方法.unique() pandas Series有一个.unique()方法;然而,pandas Dataframe没有此方法。...图6 pandas Dataframe上调用.unique()时,我们将收到一条错误消息,因为数据框架上上不存在此方法!...图7 Python集 获取唯一值的另一种方法是使用Python中的数据结构set,集(set)基本上是一组唯一项的集合。由于集只包含唯一项,如果我们将重复项传递到集中,这些重复项将自动删除。

5.9K30

Pandas图鉴(二):Series 和 Index

尽管与DataFrame相比,它的实际重要性正在减弱(你完全可以不知道Series是什么的情况下解决很多实际问题),但如果不先学习Series和Index,可能很难理解DataFrame工作原理。...索引有一个名字(MultiIndex的情况下,每一层都有一个名字)。而这个名字Pandas中没有被充分使用。...通常情况下,可以通过向read_csv提供一个标志来接收一个带有NaN的DataFrame。...下面是插入数值的一种方式和删除数值的两种方式: 第二种删除值的方法(通过删除)比较慢,而且索引中存在非唯一值的情况下可能会导致复杂的错误。...另一种追加和插入的方法是用iloc对DataFrame进行切片,应用必要的转换,然后用concat把它放回去。

21620

数据科学 IPython 笔记本 7.8 分层索引

到目前为止,我们主要关注一维和二维数据,分别存储 Pandas Series和DataFrame对象中。通常,超出此范围并存储更高维度的数据(即由多于一个或两个键索引的数据)是有用的。...更好的方式:Pandas MultiIndex 幸运的是,Pandas 提供了一种更好的方式。...^ SyntaxError: invalid syntax ''' 你可以通过使用 Python 的内置slice()函数,显式构建所需的切片,来解决这个问题,但在这种情况下...19378102 Texas 2000 20851820 2010 25145561 dtype: int64 ''' 索引设置和重设 重排分层数据的另一种方法是将索引标签转换为列...人口字典上调用它将产生一个带有state和year列的DataFrame,包含以前索引中的信息。

4.2K20

Pandas图鉴(四):MultiIndex

Pandas有很多方法可以用大括号来访问DataFrame的元素,但都不够方便,所以这里推荐采用另一种索引语法: .query方法的小型语言(它是唯一能够做'or'的方法,而不仅仅是'and'): df.query...作为一维的,Series不同情况下可以作为行向量或列向量,但通常被认为是列向量(例如DataFrame的列)。 比如说: 也可以通过名称或位置索引来指定要堆叠/取消堆叠的级别。...应用补丁后,只要在Jupyter单元格中写上df,就会显示所有锁定的level的复选标记。...lock和locked简单的情况下自动工作(如客户名称),但在更复杂的情况下需要用户的提示(如缺少日子的星期)。...官方Pandas文档有一个表格[4],列出了所有~20种支持的格式。 多指标算术 整体使用多索引DataFrame的操作中,适用与普通DataFrame相同的规则(见第三部分)。

40020

python数据分析笔记——数据加载与整理

5、文本中缺失值处理,缺失数据要么是没有(空字符串),要么是用某个标记值表示的,默认情况下pandas会用一组经常出现的标记值进行识别,如NA、NULL等。查找出结果以NAN显示。...导入数据库数据 主要包含两种数据库文件,一种是SQL关系型数据库数据,另一种是非SQL型数据库数据即MongoDB数据库文件。...(2)对于pandas对象(如Series和DataFrame),可以pandas中的concat函数进行合并。...对于重复的数据显示出相同的数据,而对于不同的数据显示a列表的数据。同时也可以使用combine_first的方法进行合并。...合并原则与where函数一致,遇到相同的数据显示相同数据,遇到不同的显示a列表数据。

6K80

pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?

工作中,当我们需要输出文档给团队查阅,必须自己为文档的质量负责,而非要求或期望我的老板和同事来处理。 2、立即生效、简单好用的笨办法。...该方法看上去有点粗笨,但在紧急情况下,你能立即用,马上解决问题。 如果单个文件中此类“文本形式存储的数据”较多,或你需要频繁输出该类文件,那么当然更好的做法是:直接优化脚本,从根源上解决问题。...解决方案: 0、初始脚本 为了完成这篇学习笔记,我把此类情况的最小情境构建一些数据,写个小脚本,如下: import pandas as pd #构建一组数据 df = pd.DataFrame([[...在这种情况下,我只能从以下2个结果中二选一: 显示为百分数,打开 excel 表格时有异常提示:以文本形式存储的数据(即现状) 显示为小数,打开excel 表格时无异常提示 想要显示为小数,则直接注释掉脚本中的...当需要把dataframe数据输出到excel并有多个子表时,如何能让百分数正常显示,而无任何异常提示呢?

3K10

20个能够有效提高 Pandas数据分析效率的常用函数,附带解释和例子

Cumsum 示例dataframe 包含3个小组的年度数据。我们可能只对年度数据感兴趣,但在某些情况下,我们同样还需要一个累计数据。...Isin 处理数据帧时,我们经常使用过滤或选择方法。Isin是一种先进的筛选方法。例如,我们可以根据选择列表筛选数据。...Melt Melt用于将维数较大的 dataframe转换为维数较少的 dataframe。一些dataframe列中包含连续的度量或变量。某些情况下,将这些列表示为行可能更适合我们的任务。...我们有三个不同的城市,不同的日子进行测量。我们决定将这些日子表示为列中的行。还将有一列显示测量值。...在这种情况下,简单的矢量化操作(例如df*4)要快得多。 然而,某些情况下,我们可能无法选择矢量化操作。

5.5K30

一文介绍Pandas中的9种数据访问方式

导读 Pandas之于日常数据分析工作的重要地位不言而喻,而灵活的数据访问则是其中的一个重要环节。本文旨在讲清Pandas中的9种数据访问方式,包括范围读取和条件查询等。 ?...Pandas中的核心数据结构是DataFrame,所以讲解数据访问前有必要充分认清和深刻理解DataFrame这种数据结构。...通常情况下,[]常用于DataFrame中获取单列、多列或多行信息。具体而言: 当在[]中提供单值或多值(多个列名组成的列表)访问时按列进行查询,单值访问不存在列名歧义时还可直接用属性符号" ....Spark中,filter是where的别名算子,即二者实现相同功能;但在pandasDataFrame中却远非如此。...等某些情况下也会非常高效,但对于filter、get、lookup以及at/iat等其实则并不常用。

3.7K30

基础知识 | 使用 Python 将数据写到 CSV 文件

但在写数据过程中,经常因数据源中带有中文汉字而报错。最让人头皮发麻的编码问题。 我先说下编码相关的知识。编码方式有很多种:UTF-8, GBK, ASCII 等。...如果使用一种编码编码,使用另一种编码解码。这会造成出现乱码的情况。但 Unicode 只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。...UTF-8 就是互联网上使用最广的一种 Unicode 的实现方式。 因此,如果我们要写数据到文件中,最好指定编码形式为 UTF-8。...指定编码为 utf-8, 避免写 csv 文件出现中文乱码 with codecs.open(fileName, 'w', 'utf-8') as csvfile: # 指定 csv 文件的头部显示项...books.append(book) data = pd.DataFrame(books) # 写入csv文件,'a+'是追加模式 try: if number == 1: csv_headers

1.8K20

Python Seaborn (5) 分类数据的绘制

对于其他数据类型,字符串类型的类别将按照它们 DataFrame显示的顺序进行绘制,但是数组类别将被排序: ?...分类内的观测分布 分类散点图固然简单实用,但在某些特定的的情况下,他们可以提供的值的分布信息会变得及其有限(并不明晰)。...可以使用上面讨论的所有选项来调用 barplot() 和 countplot(),以及每个函数的详细文档中的其他选项: ? 点图 pointplot() 函数提供了可视化相同信息的另一种风格。...此外,这些函数接受 Pandas 或 numpy 对象的向量,而不是 DataFrame 中的变量。 ?...任何一种图形都可以画出来。基于 FacetGrid 的工作原理,要更改图形的大小和形状,需要指定适用于每个方面的 size 和 aspect 参数: ?

3.9K20
领券