在本文中,我将分享一些Python函数,它们可以帮助我们进行数据清理,特别是在以下方面: 删除未使用的列 删除重复项 数据映射 处理空数据 入门 我们将在这个项目中使用pandas,让我们安装包。...first:除第一次出现外,将重复项标记为True。 last:将重复项标记为True,但最后一次出现的情况除外。 False:将所有副本标记为True。...在本例中,我希望显示所有的重复项,因此传递False作为参数。现在我们已经看到这个数据集中存在重复项,我想删除它们并保留第一个出现项。下面的函数用于保留第一个引用。...此列中缺少3个值:-、na和NaN。pandas不承认-和na为空。在处理它们之前,我们必须用null替换它们。...在该方法中,如果缺少任何单个值,则整个记录将从分析中排除。 如果我们确信这个特征(列)不能提供有用的信息或者缺少值的百分比很高,我们可以删除整个列。
日期功能 本节将提到“日期”,但时间戳的处理方式类似。 我们可以将日期功能分为两部分:解析和输出。在Excel电子表格中,日期值通常会自动解析,但如果您需要,还有一个 DATEVALUE 函数。...在 Pandas 中,您需要在从 CSV 读取时或在 DataFrame 中读取一次时,将纯文本显式转换为日期时间对象。 解析后,Excel电子表格以默认格式显示日期,但格式可以更改。...在 Pandas 中,您通常希望在使用日期进行计算时将日期保留为日期时间对象。输出部分日期(例如年份)是通过电子表格中的日期函数和 Pandas 中的日期时间属性完成的。...列的选择 在Excel电子表格中,您可以通过以下方式选择所需的列: 隐藏列; 删除列; 引用从一个工作表到另一个工作表的范围; 由于Excel电子表格列通常在标题行中命名,因此重命名列只需更改第一个单元格中的文本即可...删除重复项 Excel 具有删除重复值的内置功能。熊猫通过 drop_duplicates() 支持这一点。
空间数据的表示具有很强的力量。然而,对于一个没有接受地理信息科学培训的数据科学家/分析师来说,分析地理空间数据并提取有趣的见解可能是一项具有挑战性的任务。...较亮的像素具有较高的降雨值。在下一节中,我将提取这些值并将它们转换为pandas数据框。 从光栅文件中提取数据 现在进入关键步骤——提取每个366个光栅图像的像素值。...转换为时间序列数据框 在pandas中,将列表转换为数据框格式是一项简单的任务: # convert lists to a dataframe df = pd.DataFrame(zip(date, rainfall_mm...), columns = ['date', 'rainfall_mm']) df.head() 现在我们有了一个pandas数据框,但请注意,“日期”列中的值是字符串,pandas尚不知道它代表日期...将日期列设置为索引也是一个好主意。这有助于按不同日期和日期范围切片和过滤数据,并使绘图任务变得容易。我们首先将日期排序到正确的顺序,然后将该列设置为索引。
因为我们的具体目标是向你展示下面这些: 1、创建一个日期范围 2、处理时间戳数据 3、将字符串数据转换为时间戳 4、数据帧中索引和切片时间序列数据 5、重新采样不同时间段的时间序列汇总/汇总统计数据 6...首先导入我们将使用的库,然后使用它们创建日期范围 import pandas as pd from datetime import datetime import numpy as npdate_rng...= pd.date_range(start='1/1/2018', end='1/08/2018', freq='H') } 此日期范围具有每小时频率的时间戳。...df[df.index.day == 2] } 顶部是这样的: 我们还可以通过数据帧的索引直接调用要查看的日期: df['2018-01-03'] } 在特定日期之间选择数据如何df['2018-01-...,这是正确的计算,只有当有三个周期可以回顾时,它才开始具有有效值。
方法一:分别取日期与小时,按照日期和小时删除重复项 import pandas as pd excel_filename = '数据.xlsx' df = pd.read_excel(excel_filename...) # print(df) # 方法一:分别取日期与小时,按照日期和小时删除重复项 df['day'] = df['SampleTime'].dt.day # 提取日期列 df['hour'] =...pandas as pd excel_filename = '数据.xlsx' df = pd.read_excel(excel_filename) # 方法五:对日期时间进行重新格式,并按照新的日期时间删除重复项...本来【瑜亮老师】还想用ceil向上取整试试,结果发现不对,整点的会因为向上取整而导致数据缺失,比如8:15,向上取整就是9点,如果同一天中刚好9:00也有一条数据,那么这个9点的数据就会作为重复的数据而删除...这篇文章主要分享了使用Pandas从Excel文件中提取满足条件的数据并生成新的文件的干货内容,文中提供了5个方法,行之有效。
df.fillna(50) 输出: Pandas清洗数据时,判断重复值一般采用duplicated()方法。如果想要直接删除重复值,可以使用drop_duplicates() 方法。...df["编号"].replace(r'BA.$', value='NEW', regex=True, inplace = True) 输出: 在Pandas模块中, 调⽤rank()⽅法可以实现数据排名...clip()方法,用于对超过或者低于某些数的数值进行截断[1],来保证数值在一定范围。比如每月的迟到天数一定是在0-31天之间。...计算字符串长度 upper、lower 英文大小写转换 pad/center 在字符串的左边、右边或左右两边添加给定字符 repeat 重复字符串几次 slice_replace 使用给定的字符串,替换指定的位置的字符...今天我们盘点了66个Pandas函数合集,但实际还有很多函数在本文中没有介绍,包括时间序列、数据表的拼接与连接等等。此外,那些类似describe()这种大家非常熟悉的方法都省去了代码演示。
▍pandas数据的循环操作 仍然基于上面的数据,我们想添加一个新的特征,但这个新的特征是基于一些时间条件的,根据时长(小时)而变化,如下: ?...nametuple是Python的collections模块中的一种数据结构,其行为类似于Python元组,但具有可通过属性查找访问的字段。...一个技巧是根据你的条件选择和分组DataFrame,然后对每个选定的组应用矢量化操作。 在下一个示例中,你将看到如何使用Pandas的.isin()方法选择行,然后在向量化操作中实现上面新特征的添加。...你真的只想做一次,而不是每次运行你的模型,进行测试或分析。 你可以在此处执行的一项非常有用的操作是预处理,然后将数据存储在已处理的表单中,以便在需要时使用。...Pandas的 HDFStore 类允许你将DataFrame存储在HDF5文件中,以便可以有效地访问它,同时仍保留列类型和其他元数据。
DataFrame具有以下特点: 列和列之间可以是不同的类型 :不同的列的数据类型可以不同 大小可变 (扩容) 标记轴(行级索引 和 列级索引) 针对行与列进行轴向统计(水平,垂直) import pandas...= pd.DataFrame(d) df['one'] df[df.columns[:2]] 列添加 DataFrame添加一列的方法非常简单,只需要新建一个列索引。...如果标签重复,则会删除多行。...的行 df = df.drop(0) print(df) 修改DataFrame中的数据 (访问) 更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。...classA', 'classC']] # 访问列 df.Age df.Age['20+'] df['Age'] df['Age', '20+'] 数据加载 读HTML中的内容,要求:在HTML中必须要有
=, >, >=, <, <= 有效的布尔表达式与以下组合: |:或 &:和 ( 和 ):用于分组 这些规则类似于在 pandas 中用于索引的布尔表达式的使用方式。...不支持重复的列名和非字符串的列名 不支持对象数据类型列中的实际 Python 对象。在尝试序列化时,这些将引发一个有用的错误消息。 查看完整文档。...+ `read_orc()`和`to_orc()`目前尚不支持 Windows,您可以在安装可选依赖项中找到有效的环境。...names 数组样式,默认为`None` 要使用的列名列表。如果文件不包含表头行,则应明确传递`header=None`。不允许在此列表中存在重复项。...cache_dates 布尔值,默认为 True 如果为True,则使用一个唯一的转换日期缓存来应用日期时间转换。在解析重复日期字符串时可能会产生显著的加速,特别是带有时区偏移的日期字符串。
理解日期时间和时间差 在我们完全理解Python中的时间序列分析之前,了解瞬时、持续时间和时间段的差异非常重要。...我列出了最常见的属性,但你可以在datetime模块的文档上找到详尽的列表。...apple_price_history.loc['2018-6-1'] 使用日期时间访问器 dt访问器具有多个日期时间属性和方法,可以应用于系列的日期时间元素上,这些元素在Series API文档中可以找到...对于数据中缺失的时刻,将添加新行并用NaN填充,或者使用我们指定的方法填充。通常需要提供偏移别名以获得所需的时间频率。...苹果公司的销售在第四季度达到峰值就是亚马逊收入中的一个季节性模式的例子。 周期性 周期性指的是在不规则时间间隔内观察到的明显重复模式,如商业周期。
因业务需要,每周需要统计每天提交资源数量,但提交时间不定,可能会有某一天或者某几天没有提,那么如何将没有数据的日期也填充进去呢?...如上图所示,就缺少2021-09-04、2021-09-05、2021-09-08三天的数据,需要增加其记录并设置提交量为0。...df_new = pd.merge(dt,df,how='left',on="日期") df_new 结果,报错了 果然,df的日期格式是object类型,而dt是日期格式~ 所以,要把df的日期也改成对应的格式才能...解决问题 如何将series 的object类型的日期改成日期格式呢? 将infer_datetime_format这个参数设置为True 就可以了,Pandas将会尝试转换为日期类型。...Pandas会遇到不能转换的数据就会赋值为NaN,但这个方法并不太适用于我这个需求。
这其中,数据分析师用得最多的模块非Pandas莫属,如果你已经在接触它了,不妨一起来通过完整的数据分析流程,探索Pandas是如何解决业务问题的。...异常值:不规范的数据,如空值、重复数据、无用字段等,需要注意是否存在不合理的值,比如订单数据中存在内部测试订单、有超过200岁年龄的顾客等特别注意数据格式是否合理,否则会影响表格合并报错、聚合统计报错等问题不符合业务分析场景的数据...与业务或运维沟通后,明确测试订单的标识是在“产品名称”列中带“测试”的字样。...因为是文本内容,需要通过pd.Series.str.contains把它们找到并剔除图片 data = data[~data['产品名称'].str.contains('测试')]时间处理——剔除非分析范围数据影响消费者的因素具有时间窗口递减的特性...也就是说,在用户行为分析中,行为数据具有一定时效,因此需要结合业务场景明确时间范围后,再用pd.Series.between()来筛选近符合时间范围的订单数据进行RFM建模分析。
在 Jupyter 中(jupyter notebook 或者 jupyter lab),可以对数据表格按照条件进行个性化的设置,方便形象的查看和使用数据。....applymap(color_returns,subset=['2018','2019','2020','2021']) 效果如下: 09 颜色设置范围选择 在使用 Style 中的函数对表格数据进行样式设置时...不过经过阳哥的测试,简单的样式导出与使用是可以的。但稍微复杂一些的情况,目前的pandas版本是不太好用的。...复杂样式 当样式设置较多时,比如同时隐藏索引、隐藏列、设置数据格式、高亮特定值等,这个时候有些操作在导出后使用时并没有效果。...不过,这个功能目前也还是处于不断完善过程中,估计有时候有些内容会没有效果。 大家可以在使用过程中来发现其中的一些问题。
虽然 fillna 在最简单的情况下工作得很好,但只要数据中的组或数据顺序变得相关,它就会出现问题。本文将讨论解决这些更复杂情况的技术。...不幸的是,在收集数据的过程中,有些数据丢失了。...女孩的 KDE 有两个驼峰。有人可能会得出结论,在我们的样本中有一个子组的女孩体重较重。因为我们预先构建了分布,所以我们知道情况并非如此。但如果这是真实的数据,我们可能会从中得出错误的结论。 ?...Jake Hills 在 Unsplash 上的照片 在处理时间序列数据时,经常会出现两种情况: 调整日期范围:假设你有一份关于各国的 GDP、教育水平和人口年增长率的数据。...为了减轻丢失数据的影响,我们将执行以下操作: 按国家分组并重新索引到整个日期范围 在对每个国家分组的范围之外的年份内插和外推 1.按国家分组并重新索引日期范围 # Define helper function
在 pandas 中,可以使用 DataFrame.style.bar() 函数来实现这个功能,其参数如下: Styler.bar(subset=None, axis=0, color='#d65f5f...09 颜色设置范围选择 在使用 Style 中的函数对表格数据进行样式设置时,对于有 subset 参数的函数,可以通过设置 行和列的范围来控制需要进行样式设置的区域。...不过经过阳哥的测试,简单的样式导出与使用是可以的。但稍微复杂一些的情况,目前的pandas版本是不太好用的。...由于后面的数据表格是没有空值的,所以两者的样式实际是一样的。 复杂样式 当样式设置较多时,比如同时隐藏索引、隐藏列、设置数据格式、高亮特定值等,这个时候有些操作在导出后使用时并没有效果。...不过,这个功能目前也还是处于不断完善过程中,估计有时候有些内容会没有效果。 大家可以在使用过程中来发现其中的一些问题。
索引支持重复值,并且如果在任何索引中碰巧有重复项,则哈希表将无法再用于其实现,并且对象访问会变得很慢。...,Pandas 在同一项操作中有两个截然不同的结果。...如果max_dept_sal在其索引中重复了任何部门,则该操作将失败。 例如,让我们看看当我们在具有重复索引值的等式的右侧使用数据帧时会发生什么。...在第 4 步中,我们创建三个新表,并在每个表中保留id列。 我们还保留num列以标识确切的director/actor列。 步骤 5 通过删除重复项和缺失值来压缩每个表。...但是,在此特定情况下,由于在至少一个数据帧(具有项steak和存储B中)出现重复的索引值,将产生错误: >>> pd.concat([food_transactions.set_index(['item
('data.csv') #将价格列中的数据类型转换为浮点型 df['price'] = df['price'].astype(float) #将日期列中的数据类型转换为日期类型 df['date']...df = df.fillna(df.mean()) 数据清洗 数据清洗是数据处理过程中的一个关键步骤,可以去除重复项、异常值等。...例如下面的例子中,可以使用drop_duplicates和drop方法去除重复项和不需要的列: import pandas as pd #读取CSV文件 df = pd.read_csv('data.csv...') #去除重复项 df = df.drop_duplicates() #去除不需要的列 df = df.drop(['address'], axis=1) 数据重塑 数据重塑可以帮助我们进行更加细致的分析和可视化展示...= pd.read_csv('data2.csv') #将df2的数据合并到df1中 df = df1.merge(df2, on='id') 性能优化 在处理大数据集时,Pandas 处理速度可能会比较慢
namesarray-like,默认为 None 要使用的列名列表。如果文件不包含标题行,则应明确传递header=None。此列表中不允许重复项。...请注意,这只会缓存到一个临时目录,只在会话期间有效,但你也可以指定一个永久存储。...这包含 pandas 模式的版本,并将随每个修订版递增。 在序列化时,所有日期都转换为 UTC。即使是时区无关的值,也被视为具有偏移量为 0 的 UTC 时间。...文件不应该被压缩或指向在线源,而应存储在本地磁盘上。此外,iterparse 应该是一个字典,其中键是文档中的重复节点(它们成为行),值是任何重复节点的后代(即,子节点、孙子节点)的元素或属性的列表。...但是,如果您有一列看起来像日期的字符串(但实际上在 Excel 中没有格式化为日期),您可以使用 parse_dates 关键字将这些字符串解析为日期时间: pd.read_excel("path_to_file.xls
数据库不在此次讨论范围内保存 Pandas 的 datetime 格式Pandas 中的 datetime 格式保存并保留格式,主要取决于你使用的文件格式和读取方式。以下是一些常见方法:1....读取时指定日期时间格式CSV 格式:使用 read_csv 方法的 parse_dates 参数指定需要解析的日期时间列,并使用 date_parser 参数指定解析函数:df = pd.read_csv...使用 to_datetime 函数如果你读取的数据中的日期时间列是字符串格式,可以使用 to_datetime 函数将其转换为 datetime 格式:df['datetime_column'] = pd.to_datetime...(df['datetime_column'], format='%Y-%m-%d %H:%M:%S')他们之间的优缺点流行的数据存储格式在数据科学和 Pandas 中,几种流行的数据存储格式各有优缺点,...流行趋势:Parquet 和 Feather 格式越来越受欢迎, 尤其是在处理大型数据集时,因为它们具有更高的效率和更好的性能。CSV 格式仍然是共享数据和与其他工具交互的常用格式。
领取专属 10元无门槛券
手把手带您无忧上云