关于Python Pandas,删除行[duplicate]

问题描述 投票:2回答:1

此问题已经在这里有了答案:

全部

我创建了导入excel文件的Python代码,如果符合条件,则使用“ while”和“ if”状态删除原始代码。完成比较后,将结果导出为ex​​cel文件。没有错误代码,但是删除原始文件不起作用,因为当我打开结果excel文件时,它与导入的excel文件完全相同。我认为“ data.drop(data.index [pointer + a])”不起作用。您能帮我吗?

import pandas as pd

data = pd.read_excel('20190924_1147-50_result.xlsx', index_col = 0)
print('\nExcel file reading complete')                                                    
a = 1                                                                                     
pointer = 0                                                                               
del_indicator = 0

data = data.drop_duplicates(['Src IP', 'Dst IP', 'Dst Port'], keep='first')              
print('SrcIP, DstIP, Dst Port are Deduplicated\n')                                        

while True:
    if pointer == 2906 :       
        print(pointer, data.iloc[pointer, 3])        
        break
    elif pointer+a == 2906 :   
        pointer +=1
        a = 1
    elif data.iloc[pointer, 2] == data.iloc[pointer+a, 3] and data.iloc[pointer, 3] == data.iloc[pointer+a, 2] and data.iloc[pointer, 6] == data.iloc[pointer+a, 5]:
        print('\n-----', data.iloc[pointer, 0], data.iloc[pointer, 2], data.iloc[pointer, 3])      
        print('-----', data.iloc[pointer+a, 0], data.iloc[pointer+a, 2], data.iloc[pointer+a, 3])   

        data.drop(data.index[pointer+a])

        a+=1            
    else:             
        a+=1           

print('Deleting session traffic Finished')

data.to_excel('20190924_1147-50_result_test.xlsx', sheet_name = 'Using data') 
print('Finished creating result excel file')
python excel pandas
1个回答
2
投票

尝试进行以下小更改

data.drop(data.index[pointer+a], inplace=True)  # add inplace
# or another solution data = data.drop(data.index[pointer+a])

在我看来,您没有保存对数据的更改。

© www.soinside.com 2019 - 2024. All rights reserved.