나는 python이 pandas 데이터 프레임으로 작업하는 데 문제가 있습니다. 모델을 예측하는 기계를 예측하려고합니다. 열차 데이터 프레임에 서페이스 열이 있고 테스트 데이터 프레임에 열이 없습니다. 그래서, 기차의 표면을 기반으로 한 몇 가지 기능을 만들 것입니다. groupby와 두 개의 열로 매핑하는 방법 pandas 데이터 프레임
train['error_cat1'] = abs(train.groupby(train['cat1'])['surface'].transform('mean') - train.surface.mean())
여기에 내가 suface의 평균이 "고양이"기능에 grouby의 값을 설정했습니다. 차가운
이제 테스트에도 추가해야합니다. 따라서이 방법을 사용하여 각 그룹 별 열차의 값을 테스트 행에 매핑합니다.
mp = {k: g['error_cat1'].tolist()[0] for k,g in train.groupby('cat1')}
test['error_cat1'] = test['cat1'].map(mp)
그래서 문제가 없습니다. 이제 groupby에서 두 개의 열을 사용합니다.
train['error_cat1_cat2'] = abs(train.groupby(train[['cat1','cat2']])['surface'].transform('mean') - train.surface.mean())
하지만 테스트 용 데이터 프레임으로 매핑하는 방법을 모르겠습니다. 제발 내가이 문제를 처리하도록 도와 주시오, 아니면 제가 할 수 있도록 다른 방법을 알려주세요. 내 기차 내 테스트
+------+------+
| Cat1 | Cat2 |
+------+------+
| 1 | 2 |
+------+------+
| 2 | 1 |
+------+------+
| 3 | 1 |
+------+------+
| 1 | 3 |
+------+------+
| 2 | 3 |
+------+------+
| 3 | 1 |
+------+------+
지금 내가 예를 들어 평균가 표면 GROUPBY는 CAT1과 CAT2에 표면을 의미 할 것입니다
+------+------+-------+
| Cat1 | Cat2 | surface |
+------+------+-------+
| 1 | 3 | 10 |
+------+------+-------+
| 2 | 2 | 12 |
+------+------+-------+
| 3 | 1 | 12 |
+------+------+-------+
| 1 | 3 | 5 |
+------+------+-------+
| 2 | 2 | 10 |
+------+------+-------+
| 3 | 2 | 13 |
+------+------+-------+
입니다 예를 들어
감사
(cat1, cat2) = (1,3)은 (10 + 5)/2 = 7.5
이제 테스트에 들어가야합니다. 이 값을 (cat1, cat2) = (1,3) 행에 매핑하십시오.
나는 당신이 나를 갖고 있기를 바랍니다.
당신은 예를 들어 데이터를 간단한 코드를 만들 수 있습니다. – furas