在pandas数据框中查找缺失数据并填充为NA
我在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