我正在使用panda导入 Dataframe ,并希望在对信息进行分组之前删除某些行。
我如何从以下(示例):
Name1 Name2 Name3
0 A1 B1 1
1 NaN NaN 2
2 NaN NaN 3
3 NaN B2 4
4 NaN NaN 5
5 NaN NaN 6
6 NaN B3 7
7 NaN NaN 8
8 NaN NaN 9
9 A2 B4 1
10 NaN NaN 2
11 NaN NaN 3
12 NaN B5 4
13 NaN NaN 5
14 NaN NaN 6
15 NaN B6 7
16 NaN NaN 8
17 NaN NaN 9
至:
Name1 Name2 Name3
0 A1 B1 1
3 NaN B2 4
6 NaN B3 7
8 NaN NaN 9
9 A2 B4 1
12 NaN B5 4
15 NaN B6 7
17 NaN NaN 9
(My实际情况由数千行组成,具有与示例相同的结构)
我尝试过使用df=df[df['Name2'].notna()]删除Name2中包含NaN的行,但得到的结果如下:
Name1 Name2 Name3
0 A1 B1 1
3 NaN B2 4
6 NaN B3 7
9 A2 B4 1
12 NaN B5 4
15 NaN B6 7
我还需要保留上面示例中的第8行和第17行。
2条答案
按热度按时间fruv7luv1#
假设您要保留以下行:
可以使用布尔索引:
输出量:
中间体:
sz81bmfz2#
您可以在df.dropna中使用
thresh
参数。要删除包含2+ NaN的行,只需执行以下操作:
如果你想保留第8行和第17行,你可能需要先将它们分别保存在另一个变量中,然后使用
df.append
将它们添加到df中,然后按索引重新排序。