2016-12-06 1 views
3

DF1 :뺀 두 dataframes

City, 2015-12-31, 2016-01-31, ... 
YYZ 562.14, -701.18, ... 
DFW 562.14, -701.18, ... 
YYC 562.14, -701.18, ... 

DF2 :

City, 2015-12-31, 2016-01-31, ... 
SFO 562.14, -701.18, ... 
PDX 562.14, -701.18, ... 
LAX 562.14, -701.18, ... 

나는 DF2에서 DF1을 빼야합니다. 즉, 각 날짜 열의 값을 뺍니다.

df2.subtract(df1, fill_value=0) 

그러나 나는 다음과 같은 오류가 나타납니다 :

나는 다음과 같은 노력

TypeError: unsupported operand type(s) for -: 'str' and 'float' 

나는 오류가 작업이 도시 컬럼에 문자열을 빼기하는 방법을 이해 할 수 없기 때문에 생각하는 도시를 빼는 것은 무의미하기 때문에 분명히 이해할 수 있습니다.

이 게시물의 대답은 [link]이 가능하다고 제안하는 것 같습니다. 나는 그 질문의 저자 다. 그러나 지금 일하게하는 것처럼 보이지 않는다.

답변

4

도시 열을 색인으로 이동하십시오. DataFrames는 먼저 인덱스와 열에 의해 정렬 된 다음 뺄셈을 수행합니다. 존재하지 않는 조합은 NaN이됩니다.

df2.set_index('City').subtract(df1.set_index('City'), fill_value=0) 
0

이 방법이 효과가 있습니까?

df2.drop(['City']).subtract(df1.drop(['City']))