오픈 데이터 세트 this에서 연습 중입니다. 사용 dataframes의 기본 설명 :팬더/파이썬 데이터 프레임 - 병합 논리에서 손실 됨
데이터 가용성에 대한 정보를 포함하는 하나있다: dataavail
Timestamp Availability
201605252300 True
201605252315 False
201605252015 True
, 건은 실제 데이터 weatherdata
SquareID Timestamp Precipitation
25 201605252300 1
을 포함 하나있다을하는 경우가 아니요 비가 이 아니고 weatherdata.Precipitation
인 표시가 인 경우는 0
이지만 s weatherdata
에서 누락되었습니다. 그러나 누락 된 모든 데이터가 강수량을 의미하는 것은 아니며 기술적 인 실패를 의미 할 수도 있습니다. 그것이 dataavail
인 경우입니다. Timestamp
이 data
인 경우 Availability
은 False
입니다. 기술적 인 문제가 있었고 데이터가 없음을 의미합니다. data
에서 Timestamp
의 Availability
이 True
경우, 그 침전 실제로 내가 옵션의 전체 스펙트럼, 다음과 같습니다 즉 하나를 설명하는 dataframe을 가질 수 있도록이 두 dataframes을 결합하려는 0
이었다 의미 :
이제Timestamp Availability Precipitation
201605252300 True 1 #if the availability is True, and there's rain, data can be pulled from weatherdata
201605252315 False NaN #if there's a technical issue, data can stay NaN for further imputation
201605252015 True 0 #if the data's availability is True, but there's no entry fot it in weatherdata, it should be 0
이를 달성하기 위해, 나는 documentation이에 따라, 나의 이해에서
precip_alldata = pd.merge(weatherdata, dataavail, on=['Timestamp'], how='right')
로 병합하기 위해 노력하고있어
를 잘해야합니다 (: 오른쪽 외부 조인 SQL)이
을 제외한 모든 가능한 타임 스탬프에 대한 가용성 데이터있다 dataavail
에 있기 때문에 즉, 내가 원하는 무엇 오른쪽 프레임에서 전용 키를 사용합니다. 또한 이것이 NaN을 True로 사용할 수있는 경우 0으로 대체하지 않는다는 것도 이해합니다. 그러나 출력 precip_alldata
은 어떤 행도 가지고 있지 않습니다. 여기서 Availability
은 True
입니다. 그러나 Precipitation
은 NaN
입니다. 그러면 내 생각에 뭔가 이상하게 여겨 질 것입니다. 원시 데이터 세트를 보면 강수량이없는 경우를 분명히 볼 수 있으며 Avaiability
은 True
입니다. 그래서 내 출력 나의 이해
Timestamp Availability Precipitation
201605252300 True 1
201605252315 False Nan
같이 보입니다/내가 원하는 첫 번째 단계에서
Timestamp Availability Precipitation
201605252300 True 1
201605252315 False NaN
201605252015 True NaN
입니다. 내 생각에 범인을 지적 해 주시겠습니까? 고맙습니다!
아무것도 변화합니까? – Khris
@Khris - 강수량이 두 데이터 세트에 존재하지 않으므로이 방법은 작동하지 않습니다. –