我在pandas中有一个数据框,公司名称和日期为多索引。
companyname date emp1 emp2 emp3..... emp80
其中emp1,emp2分别是emp1和2在该日期拨打的电话数。现在有没有员工打电话的日期。意味着存在所有列值都为0的行。我想用NA填充这些值。 我应该手动编写某些函数中所有列的名称吗?有什么建议如何实现这个?
答案 0 :(得分:3)
您可以使用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:
将这些行中的所有条目分配给NaNIn [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