我想按一列(id
)进行分组,并检查其他列day
的所有值是否为“nan”,并在这种情况下删除所有相应的行。
我是这样的:
output = entry.iloc[entry.groupby['id'].day.isnull()]
但它不起作用......
entry = pd.DataFrame([ [1,],[1,],[1,],[1,],[2,3],[2,],[2,4]],columns=['id','day'])
output = pd.DataFrame([[2,3],[2,],[2,4]],columns=['id','day'])
答案 0 :(得分:1)
groupby
,transform
和count
entry.loc[entry.groupby('id')['day'].transform('count').nonzero()]
Out[154]:
id day
4 2 3.0
5 2 NaN
6 2 4.0
答案 1 :(得分:0)
您可以直接使用groupby with filter
$chatArray = array(
array(
'chatusername' => 'Troy',
'chatuserid' => '123',
'chatmessage' => 'Hello World'
),
array(
'chatusername' => 'Nick',
'chatuserid' => '124',
'chatmessage' => 'Testing'
));
答案 2 :(得分:0)
使用groupby
后跟filter
来检查日期大于0的id
组。
entry.groupby('id').filter(lambda group: group.day.sum()>0)
结果:
id day
4 2 3.0
5 2 NaN
6 2 4.0