删除每个国家/地区中每个国家每年变量为nan的行

时间:2020-05-16 16:48:12

标签: python pandas

所以我有一个已经操作过的熊猫数据框,现在它是一个面板。我的意思是说,每个国家/地区每年都有一行,并且每一列中都有一个变量,稍后我将在回归中使用该变量。但是我想删除特定国家/地区每年变量“ x”等于nan的所有行。

例如,第1至20行的国家/地区为“安道尔”(第一列中的名称,第二年为年份),而“ x”列为所有年份的nan,因此我想删除“ Andorra”的所有行。如果国家“巴西”至少有一年的“ x”与“ nan”不同,那么我不想删除该国家(这意味着我不希望对至少具有“ x”的国家删除任何行)。

我尝试使用loc和np.where,但是只有在所有年份均为nan的情况下,都无法删除该条件,我只能删除“ x”为nan的行,但是如果这样做,我最终会失败如果我至少有几年的数据,我会估计“ x”,所以我将样本的方法减少太多了。

谢谢。

1 个答案:

答案 0 :(得分:0)

for _, group in df.groupby(["Country"]):
    if group["Year"].isnull().all():
        df.drop(group.index, inplace=True)

使用gruopby将所有具有相同Country的行分组。然后,您遍历各组,并使用Year检查isnull().all()中的所有值是否为空。如果是这样,只需删除整个组即可。

相关问题