1
나는 다음과 같은 2 dataframe 있습니다두 그룹이 결과를 비교
이df1 = pd.DataFrame(columns=["DATE","ID_1", "ID_2", "RESULT" ])
df2 = pd.DataFrame(columns=["DATE","ID_1", "ID_2","RESULT"])
df1["DATE"] = ['2014-06-16', '2014-07-01', '2014-08-16', '2015-08-16']
df1['ID_1'] = [1,1,2,3]
df1['ID_2'] = ['a', 'a', 'c', 'a']
df1['RESULT'] = ['RED', 'WHITE', 'BLUE', 'RED']
df2["DATE"] = ['2014-06-16', '2014-07-01', '2014-08-16' , '2014-08-16']
df2['ID_1'] = [1,1,2,3]
df2['ID_2'] = ['z', 'z', 'h', 'k']
df2['RESULT'] = ['WHITE', 'WHITE', 'BLUE', 'RED']
이 지금은 모두 "ID_1을"GROUPBY 모든 경우 비교해야 : 당신이 이것을 실행하여 취득 할 수있는
DF1:
DATE ID_1 ID_2 RESULT
0 2014-06-16 1 a RED
1 2014-07-01 1 a WHITE
2 2014-08-16 2 c BLUE
3 2015-08-16 3 a RED
DF2
DATE ID_1 ID_2 RESULT
0 2014-06-16 1 z WHITE
1 2014-07-01 1 z WHITE
2 2014-08-16 2 h BLUE
3 2014-08-16 3 k RED
을 열 (ID_2 제외)은 동일합니다. 나는 다음과 같이 그룹화하여 시도
DATE ID_1 ID_2x ID2y RESULTx RESULTy
2014-06-16 1 z a WHITE RED
: 이상적으로 차이
을 보여줌으로써 같은 결과는해야
grp1 = df1.groupby("ID_1")
grp2 = df2.groupby("ID_1")
for (g1,g2) in zip(grp1,grp2):
g1[1][["DATE", "RESULT"]] != g2[1][["DATE", "RESULT"]]
하지만 효율적이지라고 생각합니다.
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
진행하는 방법에 대한 어떤 생각 : 또한 나는 비교 오류가?
감사합니다.
'df1'과'df2'는 공통적으로'ID_2' 값을 가지고 있지 않습니다. 고유 한 ID_2 값의 정확한 목록이 없으면 그룹을 압축하여 반복하는 것은 나쁜 생각입니다. 그리고 그때조차 그룹을 비교하는 것은 길이가 다를 가능성이 있기 때문에 까다로울 것입니다. – IanS
"결과가 같아야합니다"라고 말하면 다음 코드가 의도 한 결과 또는 의도 한 전체 결과의 한 줄을 보여줍니다. 비교 결과를 원하는 결과와 정확히 일치하지 않습니다. 출력에서 주어진 행을 어떤 조건으로 포함시켜야합니까? – ASGM
방금 오타가 있고 방금 고정되어 있습니다. ID_1로 그룹화하는 것입니다. – user2320577