这是我拥有的数据框的子集。对于句子列具有值的每一行,在接下来的两行中重复列 A B C D,而句子列没有值。如何删除句子的第二行为空值。我需要保留句子列的第一行为空值。
A B C D R sentence ADR
112 135 21 EffexorXR.21 1 lack of good feeling. good
113 135 21 EffexorXR.21 1 1
114 135 21 EffexorXR.21 1
115 136 21 EffexorXR.21 2 Feel disconnected disconnected
116 136 21 EffexorXR.21 2
117 136 21 EffexorXR.21 2
118 142 22 EffexorXR.22 1 Weight gain gain
119 142 22 EffexorXR.22 1 1
120 142 22 EffexorXR.22 1
输出是这样的
A B C D R sentence ADR
112 135 21 EffexorXR.21 1 lack of good feeling. good
113 135 21 EffexorXR.21 1 1
115 136 21 EffexorXR.21 2 Feel disconnected disconnected
116 136 21 EffexorXR.21 2
118 142 22 EffexorXR.22 1 Weight gain gain
119 142 22 EffexorXR.22 1 1
如果我使用以下代码:
df = df[pd.notnull(df['sentences'])]
,然后它将删除具有空值的两行。有什么建议吗?
以下解决方案不起作用。
df.set_index('A').drop_duplicates().reset_index()
最佳答案
也许您可以看到组合列的重复项,并使用它来屏蔽
原始数据帧
:
new_df = df[~df[['B','C','D', 'R', 'sentence']].duplicated()]
print(new_df)
输出:
A B C D R sentence ADR
0 112 135 21 EffexorXR.21 1 lack of good feeling. good
1 113 135 21 EffexorXR.21 1 1
3 115 136 21 EffexorXR.21 2 Feel disconnected disconnected
4 116 136 21 EffexorXR.21 2
6 118 142 22 EffexorXR.22 1 Weight gain gain
7 119 142 22 EffexorXR.22 1 1
关于python - 如何删除具有空值的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44741136/