Python Dataframe создает двоичный вывод при изменении значения в столбце - PullRequest
1 голос
/ 24 апреля 2020

Я наткнулся на этот ответ Определение изменения значения столбца в pandas dataframe о поиске изменения значения в кадре данных. У меня похожая проблема, но я хочу получить двоичный вывод.

Мой код:

df = 
      A
0    10 
1    20
2    20
3    50
4    50
5    30


df['B'] =  df['A'].diff()

df = 
      A    B
0    10    Nan 
1    20    10
2    20    0
3    50    30
4    50    0
5    30    -20

Я ожидаю что-то вроде этого

df = 
      A    B     C
0    10    Nan   1 
1    20    10    1
2    20    0     0
3    50    30    1
4    50    0     0
5    30    -20   1

1 Ответ

1 голос
/ 24 апреля 2020

Вам просто нужен дополнительный шаг, чтобы проверить, равняется ли B 0:

df['B'] = df.A.diff()
df['C'] = df.B.ne(0).view('i1')

print(df)

    A     B  C
0  10   NaN  1
1  20  10.0  1
2  20   0.0  0
3  50  30.0  1
4  50   0.0  0
5  30 -20.0  1

Не рекомендуется, но так как вы спросили, мы можем сделать его одним вкладышем с eval:

df['B'], df['C'] = df.assign(B=df.A.diff()).eval('B, B!=0')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...