Tôi đang cố gắng điền vào không có giá trị trong một khung dữ liệu Pandas với 0 cho chỉ một số tập hợp con cột.Pandas dataframe fillna() chỉ có một số cột tại chỗ
Khi tôi làm:
import pandas as pd
df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]})
print df
df.fillna(value=0, inplace=True)
print df
Sản lượng:
a b c
0 1.0 4.0 NaN
1 2.0 5.0 NaN
2 3.0 NaN 7.0
3 NaN 6.0 8.0
a b c
0 1.0 4.0 0.0
1 2.0 5.0 0.0
2 3.0 0.0 7.0
3 0.0 6.0 8.0
Nó thay thế mỗi None
với 0
's. Những gì tôi muốn làm là, chỉ thay thế None
s trong cột a
và b
, nhưng không phải c
.
Cách tốt nhất để làm điều này là gì?
Vâng, đây chính xác là những gì tôi muốn! Cảm ơn bạn. Bất kỳ cách nào để làm điều này tại chỗ? Dataframe ban đầu của tôi là khá lớn. – Sait
Tôi không nghĩ rằng có bất kỳ hiệu suất đạt được bằng cách làm điều này tại chỗ như bạn đang ghi đè lên orig df anyway – EdChum
loc là thừa ở đây, 'df [['a', 'b']] = df [[' a ',' b ']]. fillna (giá trị = 0) 'sẽ vẫn hoạt động – EdChum