#python #pandas #dataframe
Вопрос:
У меня есть фрейм данных с именем и уровнем столбцов. Уровень имеет 2 значения : Вкл.и выкл. Для некоторых индексов фрейма данных появляются ложные срабатывания. Например:
Timestamp CompName Level ---------------------------- 2021-09-07 B. Off 2021-09-08 B. Off 2021-09-09 B. Off 2021-09-10 B. On 2021-09-11 B. Off
Между сотнями значений «Выключено» появляются 1-2 значения «Включено», которые являются ложными срабатываниями, и я хочу заменить их на «Выключено», чтобы сделать это нормальным. Или в других случаях все наоборот
Timestamp CompName Level ---------------------------- 2021-09-07 A. On 2021-09-08 A. On 2021-09-09 A. On 2021-09-10 A. Off 2021-09-11 A. On
На этот раз для другого имени компонента появляется одноуровневое значение «выкл.» между значениями «Вкл.», и на этот раз я хочу, чтобы оно было заменено на «вкл.».
Но если значение является первой строкой для имен каждого компонента, я не хочу, чтобы оно заменялось. Например:
Timestamp CompName Level ------------------------------ 2021-09-07 C. On 2021-09-08 C. Off 2021-09-09 C. Off 2021-09-10 C. Off 2021-09-11 C. Off
Теперь значение On не следует заменять, потому что это первое значение для compname C.
Как я могу этого достичь?
Я пробовал перебирать индексы и заменять их, но это не дает мне желаемого результата
Ответ №1:
Попробуйте это:
most_common_value = df['Level'].value_counts().index[0] df['Level'].iloc[1:] = most_common_value
Выход:
gt;gt;gt; df Timestamp CompName Level 2021-09-07 B. On 2021-09-08 B. Off 2021-09-09 B. Off 2021-09-10 B. On 2021-09-11 B. Off gt;gt;gt; most_common_value = df['Level'].value_counts().index[0] gt;gt;gt; df['Level'].iloc[1:] = most_common_value gt;gt;gt; df Timestamp CompName Level 0 2021-09-07 B. On 1 2021-09-08 B. Off 2 2021-09-09 B. Off 3 2021-09-10 B. Off 4 2021-09-11 B. Off gt;gt;gt; most_common_value 'Off'