Я работаю над набором данных с пропущенными значениями. Головка набора данных выглядит следующим образом:
1:0.2 2:0.7 3:-1.2 4:0.5
1:0.9 3:0.1 4:0.8
1:-0.1 2:0.1 4:1.0
2:0.6 3:-1.0
Число перед двоеточием является индексом функции. Как видно в некоторых строках, некоторые функции отсутствуют. Поэтому, когда я импортирую данные, используя следующий код,
df = pandas.read_csv('dataset',header=None,sep = '\s+|:',engine='python')
Я получаю, что фрейм данных выглядит так:
0 1 2 3 4 5 6 7
0 1.0 0.2 2.0 0.7 3.0 -1.2 4.0 0.5
1 1.0 0.9 3.0 0.1 4.0 0.8 NaN NaN
2 1.0 -0.1 2.0 0.1 4.0 1.0 NaN NaN
3 2.0 0.6 3.0 -1.0 NaN NaN NaN NaN
Я хочу заменить NaN на 0 в правильном месте. Но если я использую df.fillna(0)
, я заменю NaN в конце каждой строки. Что я действительно хочу, так это то, что датафрейм выглядит так:
0 1 2 3 4 5 6 7
0 1.0 0.2 2.0 0.7 3.0 -1.2 4.0 0.5
1 1.0 0.9 0.0 0.0 3.0 0.1 4.0 0.8
2 1.0 -0.1 2.0 0.1 0.0 0.0 4.0 1.0
3 0.0 0.0 2.0 0.6 3.0 -1.0 0.0 0.0