각각 [ 'id', 'name', 'role', 'gender'] 및 [ 'id', 'country', 'role'] 열이있는 file1.xlsx 및 file2.xlsx가 있다고 가정 해 보겠습니다. 새 Excel 파일에서 해당 ID와 동일한 역할을 가진 모든 행을 검색하려고합니다. 나는 그것을 달성하기 위해 아래 코드를 시도했다-
import pandas
file1 = file1.xlsx
file2 = file2.xlsx
data1 = pandas.read_excel(file1)
data2 = pandas.read_excel(file2)
dataDiff = data1[data1 != data2]
writer = pandas.ExcelWriter('result.xlsx')
dataDiff.to_excel(writer, sheet_name='Sheet1',index=false)
writer.save()
하지만이 블록은 저에게 오류를줍니다.
Exception: Can only compare identically-labeled Dataframe objects'
나는 여전히 파이썬 초보자입니다. 어떤 도움을 주시면 감사하겠습니다. 판다 이외의 것을 사용할 수 있습니까?
Series.isin
성능에 사용할 수 있습니다 boolean indexing
:
mask=data1.role.isin(data2.role.tolist())
data_equal=data1[mask]
data_diff=data1[~mask]
@Jon ClementsDataFrame.merge
제안대로 사용할 수도 있습니다 .
data_equal=data.merge(data2,on='role',how='inner')
또는
data_diff= ( data1.merge(data2,on='role',how='outer',indicator=True)
.query('_merge == "left_only"')
.drop('_merge',axis=1) )
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다