Как использовать один столбец, чтобы покрыть другой столбец и принять другое значение столбца, когда NaN? - PullRequest
2 голосов
/ 23 марта 2019

Моя система Python3.6 с пандами 0.24

В моем кадре данных есть 2 столбца cola и colb df, как показано ниже:

cola   colb
A         C
C        NaN
NaN       C
C         D

Я хочуиспользуйте colb для покрытия cola, если оба имеют значение строки, используйте cola, если colb не имеет значения.

Ожидаемый результат, как показано ниже:

cola   colb      colc
A         C       C
C        NaN      C
NaN       C       C
C         D       D

Как это сделать?
Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 23 марта 2019

Вы можете использовать np.where

df['colc']=np.where(df['colb'].isnull(), df['cola'], df['colb'])

print(df)

Выход:

  cola  colb colc
0     A     C    C
1     C  None    C
2  None     C    C
3     C     D    D
1 голос
/ 23 марта 2019

Это больше похоже на fillna с pd.Series

df.colb.fillna(df.cola)
Out[593]: 
0    C
1    C
2    C
3    D
Name: colb, dtype: object
#df['colc']=df.colb.fillna(df.cola)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...