1
我得到了兩個DataFrame並想減去。從不同DataFrame中提取值
DF1:
Val1 Val2 Val3
0 -27 -0.8 -6.786321 -7.024615 -13.946589
1 -27 -0.9 -5.746795 -5.804550 -11.576365
2 -27 -1.0 -4.624857 -4.372321 -9.103681
3 -27 -1.2 -2.685832 -2.418888 -5.057056
4 -27 -1.4 -1.445561 -1.389468 -2.622357
DF2:
Bench
0 0.4601
1 -5.3336
2 -6.0163
3 -4.1776
4 -2.3472
由於我有同樣的指標,我試圖做:df1-df2
,但沒有奏效。
所以我試圖用另一種方式:
headers = list(df1.columns.values)
filtr_headers = filter(lambda x: x!='',headers)
for i in filtr_headers:
df1['%s' %(i)] = df1['%s' %(i)] - df2['Bench']
但我與NaN值返回數據幀獲得。我不知道爲什麼會發生。任何提示將受到高度讚賞。
謝謝!它解決了!儘管我試圖理解爲什麼我的實施方式不起作用。在這兩個數據框中有不同數量的列的問題?我也想在減去時跳過兩個第一列。我試圖做到這一點:df1.ix ['Val1':]。sub(df2.Bench.values,axis = 0),但我再次出現錯誤。 – Monica
@Monica不客氣。關於你的第一點 - 它試圖做一個連接來減去同名列,但是沒有。關於你的第二點 - 你有一個奇怪的索引事情繼續。我可以請求你另外提出一個關於它的問題嗎?這是一個單獨的問題,本身就很有趣。如果你願意,可以在這裏下載一個鏈接,我很樂意在那裏寫下。 –
@Monica在任何情況下,這些都不是列,它們是索引的一部分。試試'df1.index = range(5)'看看會發生什麼。 –