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

Pandas-用np.where()和iterrow()填充缺失的数据..but太慢了,请告诉我如何改进

对于填充缺失数据,使用np.where()iterrow()可能会导致较慢的运行时间。以下是一些改进的方法:

  1. 使用fillna()函数:Pandas提供了fillna()函数,可以方便地填充缺失值。你可以使用该函数的不同参数,例如使用指定的值、前一个值或后一个值来填充缺失数据。具体示例代码如下:
代码语言:txt
复制
import pandas as pd

# 假设df是你的DataFrame对象
df.fillna(value=0)  # 使用指定值填充缺失数据,这里将缺失值填充为0
df.fillna(method='ffill')  # 使用前一个值填充缺失数据
df.fillna(method='bfill')  # 使用后一个值填充缺失数据
  1. 使用apply()函数和自定义函数:你可以使用apply()函数结合自定义函数来填充缺失数据。通过自定义函数,你可以使用更高效的方法来填充数据。具体示例代码如下:
代码语言:txt
复制
import pandas as pd
import numpy as np

# 假设df是你的DataFrame对象
def fill_missing_data(row):
    # 自定义函数来填充缺失数据,这里将缺失值填充为均值
    row.fillna(value=row.mean(), inplace=True)
    return row

df = df.apply(fill_missing_data, axis=1)
  1. 使用interpolate()函数:interpolate()函数可以根据已有数据的趋势来填充缺失数据。它可以通过线性插值、多项式插值等方法来推测缺失值。具体示例代码如下:
代码语言:txt
复制
import pandas as pd

# 假设df是你的DataFrame对象
df.interpolate(method='linear', inplace=True)  # 使用线性插值填充缺失数据

这些改进方法可以更有效地填充缺失数据,并且避免使用np.where()iterrow()导致的性能问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Pandas 高性能优化小技巧

背景 Pandas 对于Pythoner数据分析来说是常用数据操作库,对于很多刚接触Pandas的人来说会发现它是一个很方便而且好用库,它提供了各种数据变化、查询操作,它dataframe...数据结构R语言、SparkdataframeAPI基本一样,因此上手起来也非常简单。...在底层设计中,pandas按照数据类型将列分组形成数据块(blocks)。pandas使用ObjectBlock类来表示包含字符串列数据块,FloatBlock类来表示包含浮点型列数据块。...因为Python是一种高层、解析型语言,它没有提供很好对内存中数据如何存储细粒度控制。 这一限制导致了字符串以一种碎片化方式进行存储,消耗更多内存,并且访问速度低下。...在object列中每一个元素实际上都是存放内存中真实数据位置指针。 category类型在底层使用整型数值来表示该列值,而不是原值。Pandas一个字典来构建这些整型数据到原数据映射关系。

3K20
  • 利用pandas处理Excel数据

    nan]) 对第几行数据不读取 # 没有读取第2行 df1 = pd.read_excel('table1.csv',skiprows=[2] ) 对缺失值进行识别 # 所有缺失值显示为True...df.isnull() 清洗数据 删除空值(dropna函数) df2 = df.dropna(how='any') 填充空值(fillna函数) df3 = df.fillna(value=0)...均值对空值进行填充 df4 = df['Score'].fillna(df['Score'].mean()) 0 80.0 1 90.0 2 100.0 3 90.0...(df1['Score'] > '85'), ['Name','Age','Class']] ③先判断结果,将结果为True提取 # 先判断Score列里是否包含8090,然后将复合条件数据提取出来...df.loc[df['Score'].isin(['80','90'])] 作者:AI阿聪 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载附上原文出处链接本声明。

    1K20

    python数据科学-数据预处理

    缺失值处理有两种方法,一种是直接对某一列中缺失值进行处理,一种是根据类别标签,分类别对缺失值进行处理。 我们先看如何在没有类别标签情形下修补数据。...这里需要注意是删除某一个缺失值时,需要把该值一个维度/行值也一起删除,但是其他值可能对数据整体影响比较大,所以这种方法时候要慎重。...most_frequent分别表示均值、中位数、众数三者来填充 #axis=0表示按列填充,1表示按行填充 #copy设置为False时表示不在原数据基础上修改 关于Imputer用法 缺失值处理对应于...这里面填充具体常数值也可以直接换为中位数,平均数之类,比如df.fillna(data.mean())就表示平均值填充。...我们有的时候可能需要根据类别(比如我们要根据性别这个分类来分别给身高这个缺失值进行填充)分别进行缺失处理,这个时候需要先把不同类别的数据找出来,这里np.where()函数,该函数在前面有提到

    1.6K60

    基于JAX大规模并行MCMC:CPU25秒就可以处理10亿样本

    我考虑以下情况: Numpy 实现; JAX 实现; 减去编译时间 JAX 实现。这只是一个假设情况,目的是显示编译带来改进。...你将注意到 TFP 实现缺失点。由于 TFP 算法存储所有的样本,所以它会耗尽内存。这在 XLA 编译版本中没有发生,可能是因为它使用了内存效率更高数据结构。...你将注意到 JAX 曲线上有一个凸起,这完全是由于编译造成 (绿色曲线没有这个凸起)。我不知道为什么,如果有答案告诉我!...TFP 实现包括更多附加功能,我希望它在每秒有效采样样本数方面更具竞争力。 最后,请注意,数量乘以样本数量要比样本数量乘以样本数量容易得多。...我们还不知道如何处理这些链,但我有一种直觉,一旦我们这样做了,概率编程将会有另一个突破。

    1.6K00

    特征工程与数据预处理全解析:基础技术代码示例

    本文总结这些关键步骤可以显著提高模型性能,获得更准确预测,我们将深入研究处理异常值、缺失值、编码、特征缩放特征提取各种技术。 异常值 异常值是数据集中与其他观测值显著不同数据点。...简单插值方法包括均值、中位数或众数填充: def simple_impute(dataframe): cat_cols = [col for col in dataframe.columns...对于每个缺失样本,它找到K个最相似的完整样本。然后使用这些邻居值来估计填充缺失数据。输入值通常是相邻值平均值或中值。当丢失数据不是随机并且依赖于其他特征时,它特别有用。...这样有助于降低模型复杂性,改进泛化,并处理测试数据中未见过类别。...本文介绍了如何处理异常值缺失值、编码分类变量、缩放数值特征创建新特征——为准备机器学习任务数据奠定了坚实基础。

    21010

    伪标签半监督学习

    github : https://github.com/sladesha 之前在训练YoutubeNetDCN时候,我都发现平台用户中基础用户信息数据缺失率特别高,比如性别一栏准确填写不足60%...,所以我一直想调研一下有没有什么更好填充方法,要保证既不能复杂耗时,也要有足够好效果。...其实这个问题就是一个缺失填充,之前文章中也写过很多办法,常规也总结过: 均值、众数填充 最简单填充,效果也惨不忍睹 根据没有缺失数据线性回归填充 填充好会造成共线性错误,填充不好就没价值,...将有标签部分数据分为两份:train_set&validation_set,并训练出最优model1 model1对未知标签数据(test_set)进行预测,给出伪标签结果pseudo-labeled...原文链接:https://www.jianshu.com/p/fd4cae0d0e85 查阅更为简洁方便分类文章以及最新课程、产品信息,移步至全新呈现“LeadAI学院官网”: www.leadai.org

    69420

    超强Python『向量化』数据处理提速攻略

    作者:Cheever 编译:1+1=6 今天公众号给大家好好讲讲基于PandasNumPy,如何高速进行数据处理! 1 向量化 1000倍速度听起来很夸张。Python并不以速度著称。...当然有可能 ,关键在于你如何操作! 如果在数据上使用for循环,则完成所需时间将与数据大小成比例。但是还有另一种方法可以在很短时间内得到相同结果,那就是向量化。...它向量化了你函数,而不一定是这个函数如何应用于你数据,这有很大不同!...更简洁(甚至更快)做多重嵌套np.where。 np.select()一个优点是它layout。 你可以用你想要检查顺序来表达你想要检查条件。...np.vectorize()时: 同时,当使用向量化方法处理字符串时,Pandas为我们提供了向量化字符串操作.str()。

    6.7K41

    数据准备特征工程】数据清理

    在同一个变量改变 df.dropna(inplace=True) df name toy born 1 Batman Batmobile 1940-04-25 #### c.指定值填补缺失数据...df'ColA'.fillna(method='bfill')#以后面一个值填充 调用sklearn.impute中SimpleImputer来填补缺失数据 ```python from sklearn.impute...,等于75%25%之间差值,或上四分位数下四分位数之间差值,IQR=Q3 - Q1。...下面的代码将产生带有真值假值结果。带有False数据点表示这些值是有效,而True则表示有释放。...如果你确定数值是错误,就修正它。 如果离群值不在利益分配范围内,则删除。 考虑到数据差距,使用抗离群值统计工具,例如,稳健回归(另一种参数估计方法)Robust_regression。

    87520

    Pandas入门2

    image.png 5.2 DataFrame相加 对于DataFrame,对齐会同时发生在行列上,两个DataFrame对象相加后,其索引列会取并集,缺省值NaN。...image.png 5.8 缺失值处理 缺失数据在大部分数据分析应用中都很常见,pandas设计目标之一就是让缺失数据处理任务尽量轻松。 pandas对象上所有描述统计都排除了缺失数据。...DataFrame对象Series对象都有isnull方法,如下图所示: ? image.png notnull方法为isnull方法结果取反 fillna方法可以填充缺失值。...为了便由于分析,获取到数据集中从列名为school到列名guardian之间所有数据 start_column = np.where(df.columns == 'school')[0][0] end_column...datetime.datetime也是最多数据类型。 datetime以毫秒形式存储日期时间,datetime.timedelta表示两个datetime对象之间时间差。 ?

    4.2K20

    Kaggle搭积木式刷分大法:特征工程部分

    绝大多数特征都不知道琢磨后是否有价值,(单变量回归) 例如,房子外立面材料,房间电器开关什么标准,多少安培等等等,Frontage大小,宗土图形状等等, 贷款是否还清了, 更不知道其他特征配合后结果会如何...更不知道其他特征配合后结果会如何。(多元变量回归) pipe强处就在这里。搭积木呀,简单各种pipe连在一起就好。...有两上面这两个库,sklearn 里面的gradientboost就没有必要用了,太慢了,score也不如这两个库好。 1、导入函数Pandas库 ? 2、导入数据,准备combined数据集。...3.2.2 缺失值分析 ? ? ? 有35个数据都有缺失值情况。 大多数机器学习算法要求不可以有缺失值。 因此,处理缺失值是 必要工作之一。 ? 总结:初步EDA了解到: 1.有偏度 - 需要处理。...通常是log1p (提分关键) 2.有缺失 - 需要填充或者删除,通常用均值或者中指,或者用人工分析(人工分析是提分关键) 3.有类别变量 - 需要转换成数值 (个人感觉刷近前20%关键) (此处没有做

    2.1K90

    不要轻易合并单元格

    问题描述 在Excel数据分析中,是切记不要合并单元格,这可能会导致不能排序等一些列问题。而我为了表格好看,在工作前几天就入了这种坑。那我们以下面的数据为例,看看如何取消单元格合并。...pandas读,都是会有缺失。 ② 缺失填充 其实,我们只需要先前填充缺失值,就行了。...data[0].fillna(method='pad',inplace=True) data Excel解决 编程可以来做,但是条件苛刻。...需要Python环境 读数据-处理数据-导出数据,流程太多。 所以我们Excel来解决。刚开始,我想着是取消单元格合并后,手动进行填充,但数据量很多时候,是很麻烦。接下来,我们看看简单办法。...② 选中第一列数据ctrl+g,定位条件选择 空值。 ③ 输入公式=A1,使用ctrl+enter键,即可完成。 ?

    2.9K30

    机器学习中处理缺失9种方法

    在这个文章中,我将分享处理数据缺失9种方法,但首先让我们看看为什么会出现数据缺失以及有多少类型数据缺失。 ? 不同类型缺失缺失值主要有三种类型。...例如,在数据身高年龄,会有更多年龄列中缺失值,因为女孩通常隐藏他们年龄相同的如果我们准备工资数据经验,我们将有更多薪水中遗漏值因为大多数男人不喜欢分享他们薪水。...2、随机样本估算 在这种技术中,我们dataframe中随机样本替换所有nan值。它被用来输入数值数据。我们使用sample()对数据进行采样。在这里,我们首先取一个数据样本来填充NaN值。...6、频繁类别归责 该技术用于填充分类数据缺失值。在这里,我们最常见标签替换NaN值。首先,我们找到最常见标签,然后用它替换NaN。...优点 容易实现 结果一般情况下会最好 缺点 只适用于数值数据 我们在上篇文章中已经有过详细介绍,这里就不细说了 在python中使用KNN算法处理缺失数据 9、删除所有NaN值 它是最容易使用实现技术之一

    2K40

    安全记分卡Envoy——自动化供应链分析

    我们帮助Envoy维护者Harvey Tuch为他们例测试评估记分卡,这是他们针对外部依赖新策略一部分。...这还不算糟糕,这导致了签署版本问题Scorecards项目的另一个修复!...Envoy项目计划将OpenSSF记分卡集成到它们依赖项元数据中,并围绕它们依赖项执行CI策略。记分卡将减少维持Envoy供应链时辛劳人工努力。...如果你是OSS项目的维护者,并且对试用与Envoy类似的记分卡感兴趣,那就告诉我吧!你可以在安全关键项目Slack频道找到我其他从事类似项目的人。...CNCF(云原生计算基金会)致力于培育维护一个厂商中立开源生态系统,来推广云原生技术。我们通过将最前沿模式民主化,让这些创新为大众所用。长按以下二维码进行关注。

    57110

    泰坦尼克号幸存预测

    数据概览 本项目提供了两份数据: train.csv文件作为训练集构建与生存相关模型; 另一份test.csv文件则用作测试集, 我们构建出来模型预测生存情况. 2.1 读取数据: import...特征工程 4.1 缺失值处理 缺失值主要是由人为原因机械原因造成数据缺失, 在pandas中用NaN或者NaT表示, 它处理方式有多种: 1....某些集中趋势度量(平均数, 众数)进行对缺失值进行填充. 2. 统计模型来预测缺失值, 比如回归模型, 决策树, 随机森林 3. 删除缺失值 4....舱位缺失可能代表这些人没有舱位, 不妨'NO'来填充. train['Cabin'] = train['Cabin'].fillna('NO') 4.1.3 Age缺失值处理 Age缺失177个, 占比..., inplace = True) #重置索引 train.reset_index(inplace = True) 此时, 就完成了对Age字段中缺失填充.

    1.2K21

    林青霞旧照换新颜,AI图像修复术神助攻

    修复老照片是利用AI算法替代图像数据缺失或者损坏部分。而一键磨皮是在保护头发、眼睛等细节部位外,其它部位进行模糊处理,相当于是一种粗糙去噪声方式,并不能很好去除模糊提升清晰度。...通常来说,图像修复包括多种任务:降噪/去噪、超分辨率重建、图像填充、图像去模糊、JPEG去块等。...传统上,图像修复可以使用基于扩散方法来处理,这种方法将局部结构传播到位置部分,或者基于示例方法,每一次构建缺失部分一个像素点(块)同时保持周围像素点一致性。...上述接受采访图像识别专家告诉我们,“图像修复过程中,人物区域识别信息,相关图片噪声强度,模糊程度信息很关键。” 结合深度学习图像修复是如何实现?...Consistent Image Completion (CE中加入Global+Local两个判别器改进)。

    1K20

    伪标签半监督学习

    之前在训练YoutubeNetDCN时候,我都发现平台用户中基础用户信息数据缺失率特别高,比如性别一栏准确填写不足60%,所以我一直想调研一下有没有什么更好填充方法,要保证既不能复杂耗时,...其实这个问题就是一个缺失填充,之前文章中也写过很多办法,常规也总结过: 均值、众数填充 最简单填充,效果也惨不忍睹 根据没有缺失数据线性回归填充 填充好会造成共线性错误,填充不好就没价值...,很矛盾 剔除 丢失信息量 设置哑变量 会造成数据分布有偏 smote 连续值有效,离散值就无法实施了 我在Google上看imbalance问题时候,偶然看到了这个视频教程,上面讲了图像缺失处理...我就在国内论坛上找了下,阿里云技术论坛也同样注意到了这个问题,但是只给出了如下粗糙构思图: ? 有一份整理了流程图,具体执行步骤总结,大家一起看一下: ?...将有标签部分数据分为两份:train_set&validation_set,并训练出最优model1 model1对未知标签数据(test_set)进行预测,给出伪标签结果pseudo-labeled

    85920

    数据分析入门系列教程-数据清洗

    可以看到,登船地点总共包含三类数据,S、C Q,他们出现次数分别为 914、270 123。 又因为该列数据总共缺失 3 个,缺失率很低,使用众数来填充这三个缺失值应该是没问题。...,可以采用众数方式来填充缺失值,也可以选择直接删除掉缺失部分,不影响整体数据分布 data.dropna(axis=0, how='any', inplace=True) 最后,再查看确认下是否不存在缺失值了...对于 embarked sex 这两列,都是字符串类型数据,需要转化为数字才能被算法模型分析处理。...对于缺失值,需要根据其缺失百分比及数据分布情况,来决定如何填充缺失值。对于一些非数字类型数据,可以选择独热编码等方式转换数据。...还总结了数据清洗准则,只要你遵循这些准则来处理数据,那么得到数据基本就是“好”数据了。 ? 练习题 对于本节例子,你还有哪些观点,对于缺失填充,是否还有其他方式呢?

    87030
    领券