關於替換某些行或列或特定值有很多問題,但我沒有找到我在找什麼。 想像這樣一個數據幀,如何根據條件替換大熊貓數據框中的任何值?
a b c d
a 0.354511 0.416929 0.704512 0.598345
b 0.948605 0.473364 0.154856 0.637639
c 0.250829 0.130928 0.682998 0.056049
d 0.504516 0.880731 0.216192 0.314724
現在我想換成基於與其他的東西(無論在哪個列或行而異)條件的所有值。假設我想用np.nan
替換所有值< 0.5。 我已經嘗試了幾件事,沒有任何工作(即沒有發生,數據幀保持不變)。
例代碼在這裏:
frame = pd.DataFrame(np.random.rand(4,4),index=['a','b','c','d'], columns=['a','b','c','d'])
print frame
for row,col in enumerate(frame):
frame.replace(frame.ix[row,col]<0.5,np.nan,inplace=True)
print frame
或
for row,col in enumerate(frame):
if frame.ix[row,col]<=0.5:
M.ix[row,col]=np.nan
print M
但最終,
a b c d
a 0.600701 0.823570 0.159012 0.615898
b 0.234855 0.086080 0.950064 0.982248
c 0.440625 0.960078 0.191975 0.598865
d 0.127866 0.537867 0.434326 0.507635
a b c d
a 0.600701 0.823570 0.159012 0.615898
b 0.234855 0.086080 0.950064 0.982248
c 0.440625 0.960078 0.191975 0.598865
d 0.127866 0.537867 0.434326 0.507635
- 它們是相同的,沒有任何的NaN而不是小的值。哪裏有問題?