在pandas数据框中查找缺失数据并填充为NA

2 投票
1 回答
1792 浏览
提问于 2025-04-18 10:09

我在pandas中有一个数据框,里面有公司名称和日期作为多重索引。

companyname date emp1 emp2 emp3..... emp80

在这里,emp1和emp2分别表示在那一天,emp1和emp2打的电话数量。现在有些日期是没有员工打电话的,也就是说,有些行的所有列值都是0。我想把这些值填成NA。
我需要手动写出所有列的名字吗?有没有什么建议可以实现这个?

1 个回答

4

你可以用 all 这个方法来检查整行是否都是 0:

In [11]: df = pd.DataFrame([[1, 2], [0, 4], [0, 0], [7, 8]])

In [12]: df
Out[12]: 
   0  1
0  1  2
1  0  4
2  0  0
3  7  8

In [13]: (df == 0).all(1)
Out[13]: 
0    False
1    False
2     True
3    False
dtype: bool

现在你可以使用 loc 把这些行里的所有值都设置为 NaN(表示“不是一个数字”):

In [14]: df.loc[(df == 0).all(1)] = np.nan

In [15]: df
Out[15]: 
    0   1
0   1   2
1   0   4
2 NaN NaN
3   7   8

撰写回答