2015-11-15 4 views
0

У меня есть две панды dataframes что я прочитал из CSV-файлов:Вычтите две панды Dataframes

tmp1=pandas.read_csv(pathDataset1, parse_dates = [0],index_col=0, date_parser=parser) 
tmp2=pandas.read_csv(pathDataset2, parse_dates = [0],index_col=0, date_parser=parser) 
print tmp1 
     #index  #A 
1.296518e+12 443 
1.298938e+12 433 
1.301616e+12 463 
1.304208e+12 483 
1.306886e+12 433 
1.309478e+12 413 
1.312157e+12 403 

print tmp2 
     #index #A 
1.298938e+12 403 
1.301616e+12 483 

И я хочу, чтобы получить разницу между двумя моими dataframes на моей колонке А так я могу получить как выход то как это:

1.298938e+12 30 
1.301616e+12 -20 

мне удалось получить этот результат с numpy.substract, но это только если эти два массива tmp1.values ​​и tmp2.values ​​находятся в той же форме, и это не всегда так для меня.

ответ

1

tmp1.subtract(tmp2) работает, даже если форма двух DataFrames отличается:

tmp1 = pd.DataFrame({'A': {1296518000000.0: 443, 1298938000000.0: 433, 
          1301616000000.0: 463, 1304208000000.0: 483, 
          1306886000000.0: 433, 1309478000000.0: 413, 
          1312157000000.0: 403}}) 
tmp2 = pd.DataFrame({'A': {1298938000000.0: 403, 1301616000000.0: 483}}) 
print(tmp1.subtract(tmp2).dropna()) 

дает

   A 
index   
1.298938e+12 30 
1.301616e+12 -20 
+0

это именно то, что я хочу, но когда я использую метод панд чтения Csv его дозы, не работа, которую я получить пустой dataframe в результате – azelix

+0

Мне удалось решить эту небольшую ошибку, я отсутствовал header = none, потому что это не совсем файл csv. В любом случае спасибо, ваш ответ работает на меня! – azelix

Смежные вопросы