繁体   English   中英

如何从数据框中删除具有空值和分类变量的行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM