Pythonic способ изменения значений рядов для элементов индекса в серии и отдельного кадра данных - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть серия:

    s

A   1
B   0
C   1
D  -1
E  -1
F   0
... 

и кадр данных с подмножеством значений индекса серии:

df

    one   two  three ....
A    
C   
D  
F   
... 

содержание df не относится к моему вопросу.

Я ищу самый Pythonic способ проверить индекс ряда по индексу фрейма данных, и если элемент индекса находится в индексах как серии, так и фрейма данных, измените значение ряда на ноль.

Результат, который я ищу, состоит в том, чтобы серии выглядели так, как показано на примере s и df, приведенном выше:

    s

A   0
B   0
C   0
D   0
E  -1
F   0

Обратите внимание, что для некоторых значений ряда вначале было 0, и они остаются равными 0. Значения, в которых элементы индекса находятся в обоих, заменяются на 0 в ряду.

Я могу перебрать индекс, но ищу более питонский способ сделать это.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Можно использовать обновление с пустым столбцом всех 0. Должно быть быстро.

import pandas as pd

s.update(pd.Series(0, index=df.index))
0 голосов
/ 03 ноября 2018

Просто сделай:

s[s.index.isin(df.index)] = 0

Урожайность:

A    0
B    0
C    0
D    0
E   -1
F    0
dtype: int64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...