Как заполнить нан на основе нескольких условий? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть такой фрейм данных:

       a    b    c
    0  €9K €78M €96M
    1  €0  €0   NaN
    2  €0  €0   NaN
    3  €0  €1K  NaN

Я хочу заполнить NaN на основе значений в ['a'] и ['b'] следующим образом:

1) if df[['a','b']=="€0" then fill df['c] with '€0' when it's NaN
2) if df['a'] == '€0' & df['b'] =="€1k" then fill df['c] with '€1K' when it's NaN

Я пытался применить пару, думает, что видел переполнение стека, но у меня ничего не получилось.

condition1=[(df['a'] =="€0") & (df['b'] =="€0") ]
condition2=[(df['a'] =="€0") & (df['b'] =="€1K") ]

for row in df['c']:
    if condition1 == True:
        df['c].fillna('€0', inplace=True)
    elif condition2 == True:
        df['c'].fillna('€1k', inplace=True)
    else:
        df['c']

так должно выглядеть так:

   a    b    c
0  €9K €78M €96M
1  €0  €0   €0
2  €0  €0   €0
3  €0  €1K  €1K

Ps: я знаю, что есть много постов на эту тему, но это не сработало, поэтому яопубликовать мою проблему

1 Ответ

0 голосов
/ 28 июня 2019

Мы можем использовать numpy select

condition1=(df['a'] =="€0") & (df['b'] =="€0") 
condition2=(df['a'] =="€0") & (df['b'] =="€1K") 
df.c=np.select([condition1,condition2],[df.a,df.b],default=df.c)
df
     a     b     c
0  €9K  €78M  €96M
1   €0    €0    €0
2   €0    €0    €0
3   €0   €1K   €1K
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...