2015-11-15 240 views
0

我有我從CSV文件中讀取的兩隻大熊貓dataframes:。減去兩隻熊貓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 

,我希望得到我的A柱我的兩個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它的劑量不工作我因此得到一個空的數據框 – azelix

+0

我已經設法解決這個小錯誤,我錯過了header = none,因爲它不完全是一個csv文件。無論如何謝謝你的答案適合我! – azelix