1

我必須將一列與數據框中的所有其他列進行比較。我必須與其他人比較的列位於位置4,因此我編寫df.iloc [x,4]來獲取列值。然後我必須考慮這些值,並將它們與下一列中的值相乘(例如df.iloc [x,5]),在數據框中創建一個新列並保存結果。然後我不得不重複這個過程來結束現有的列(原始數據幀有43列,所以最後它是df.iloc [x,43]) 我怎麼能在python中做到這一點? 如果可能,你可以做一些例子嗎?我試着把我的代碼放在帖子裏,但是我的新手機不好。如何將結果保存在Python中的數據框的不同列中?

回答

0

我認爲你可以使用eq - 比較4位置過濾DataFrameE柱:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,8,9], 
        'G':[1,3,5], 
        'H':[5,3,6], 
        'I':[7,4,3]}) 

print (df) 
    A B C D E F G H I 
0 1 4 7 1 5 7 1 5 7 
1 2 5 8 3 3 8 3 3 4 
2 3 6 9 5 6 9 5 6 3 

print (df.iloc[:,5:].eq(df.iloc[:,4], axis=0)) 
     F  G  H  I 
0 False False True False 
1 False True True False 
2 False False True False 

如果位置需要多個柱4使用mul

print (df.iloc[:,5:].mul(df.iloc[:,4], axis=0)) 
    F G H I 
0 35 5 25 35 
1 24 9 9 12 
2 54 30 36 18 

或者如果需要多個通過移動列:

print (df.iloc[:,4:].mul(df.iloc[:,5:], axis=0, fill_value=1)) 
    E F G H I 
0 5.0 49 1 25 49 
1 3.0 64 9 9 16 
2 6.0 81 25 36 9 
相關問題