[英]How can I drop the rows with null values and categorical variables from the dataframe?
我试图从我从 Excel 导入的数据框中删除具有空值和分类变量的行。 我已经尝试了许多其他功能和许多不同的方法来这样做,但我无法删除它们,至少不是全部。
大约有 185000 行和 6 列。 我试图做的是使用 for 循环遍历整行并在“订单 ID”列上有空值或分类变量时删除行。
这是我尝试过的代码之一:
f = 0
value = merged_file.at[f, 'Order ID']
for value in merged_file:
if value is None:
merged_file.drop(merged_file.index[f])
merged_file.reset_index(inplace=True, drop=True)
f+=1
continue
elif value == 'Order ID':
merged_file.drop(merged_file.index[f])
merged_file.reset_index(drop=True, inplace=True)
f+=1
continue
elif f==186845:
break
else:
f+=1
continue
如果纠正我做错了什么,我将不胜感激,如果有更好的方法来指定和删除具有空值和分类变量的行或列,请告诉我。
谢谢你。
因此,即使代码看起来不是真正的 Pythonic,您似乎也在使用 Pandas。 无论如何,我建议不要遍历数据帧的每一行,在包含 nan 的熊猫行中可以使用dropna 删除:
merged_file.dropna(subset=['Order ID'],inplace=True)
要删除包含分类变量的行,您可以使用 numpy isreal 。 Apply 简单地将函数 isreal 应用于所有行,将所有不包含数值的行标记为 False。
import numpy as np
merged_file = merged_file[merged_file['Order ID'].apply(lambda x: np.isreal(x))]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.