【发布时间】:2021-05-19 19:57:50
【问题描述】:
我需要用一个大数据集优化这个需要几十秒的代码部分。
if ((isnan(data["x"][i]))==False):
data["Visibility"][i]=int(data["Visibility"][i][0:2]) # Extract the first two numbers
else:
data["x"][i]=1000 # Replace null values with 1000
编辑:对于我的数据集,我有字符串列值,我想用相同值的子集替换它们
这是一个例子:
"01 : visibilité Horizontale 0.1km" --> 01
"02 : visibilité Horizontale 0.2km" --> 02
"03 : visibilité Horizontale 0.3km" --> 03
...
【问题讨论】:
-
你能多展示一点吗?此外,看起来您正在迭代数据框。这非常慢,而且很少(如果有的话)解决方案。
-
如果您只想替换数据框中的 NaN 或缺失值,请查看 fillna function,它应该比遍历数据框更有效
-
请将您的数据的 small 子集作为可用于测试的可复制 代码片段以及您对提供数据。请参阅 MRE - Minimal, Reproducible, Example 和 How to make good reproducible pandas examples。
-
附注 - 无需在
if语句中与True或False进行比较。你可以(并且应该)做类似if not isnan(data["x"][i])): -
我对我的问题做了一些澄清..