내가하려고하는 것은 Excel 파일 (팬더 포함)의 여러 행을 삭제 한 다음 해당 행이없는 파일을 .xlsx로 저장하는 것입니다. (pyexcelerate 모듈 포함).값 집합에없는 행 찾기 (SQL Except와 유사)
데이터 프레임의 행을 삭제하여 삭제할 수 있다는 것을 알고 있습니다. 이미 작동하도록했습니다. 하지만 여러 게시물을 읽었을 때 많은 경우 (내 경우에는> 5000) 행을 삭제해야합니다. 데이터 프레임에서 "삭제"행의 인덱스를 얻은 다음 데이터 프레임을 슬라이스하는 것이 훨씬 빠릅니다 예를 들어 SQL Except 문과 같이). 불행히도 나는 여러 가지 방법을 시도해 보았지만 제대로 작동하지 않습니다. 여기
내 "원본 게시물"입니다
가Slice Pandas dataframe by labels that are not in a list -
How to drop a list of rows from Pandas dataframe? 사용자 ASGM에서 대답 - 여기에 대답 사용자에서 데니스 Golomazov
그리고 함수의 일부, 즉 삭제해야 행을 만들고 만들어진 파일을 저장하십시오.
for index, cell in enumerate(wb_in[header_xlsx]):
if str(cell) in delete_set:
set_to_delete.append(index)
print str(cell) + " deleted from set: " + str(len(set_to_delete))
wb_out = Workbook()
data_out = wb_in.loc[set(wb_in.index) - set(set_to_delete)]
ws_out = wb_out.new_sheet('Main', data=data_out)
wb_out.save(file_path + filename + "_2.xlsx")
다음은 데이터 프레임의 예입니다.
sku product_group name \
0 ABCDb00610-23.0 ABA1 Anti
1 ABCDb00610-10.0 ABA1 Anti
2 ABCDb00610-1.1 ABA1 Anti
3 ABCDb00609-23.0 ABA1 Anti
4 ABCDb00609-10.0 ABA1 Anti
5 ABCDb00609-1.1 ABA1 Anti
6 ABCDb00608-23.0 ABA1 Anti
7 ABCDb00608-10.0 ABA1 Anti
8 ABCDb00608-3.3 ABA1 Anti
9 ABCDb00608-3.0 ABA1 Anti
Delete_set은 skus (예 : ABCDb00608-3.3 또는 ABCDb00609-1.1) 만 포함하는 집합입니다.
Btw : 많은 솔루션 제안을 시도했습니다!
미리 감사드립니다.
두 가지를 제시해주십시오 : 1. dataframe 2. "delete_set". 세트에는 무엇이 들어 있습니까? 색인? 가치? 이것은 분명하거나 도움이되지 않습니다. –
데이터 프레임에는 3 개의 열이 있습니다. sku | product_group | 이름. 그리고 'set_to_delete'에는 for 루프에서 찾은 색인이 들어 있습니다. – Frame
내 질문에 완전히 대답하지 않았습니다. 실제 데이터를 텍스트 형식으로 보는 것이 좋을 것입니다. –