объединение столбцов в панде - PullRequest
0 голосов
/ 09 октября 2018

У меня есть следующий фрейм данных:

df = pd.DataFrame({
         'user_a':['A','B','C',np.nan],
         'user_b':['A','B',np.nan,'D']
})

current df

Я хотел бы создать новый столбец с именем user и получить результирующий фрейм данных:

complete df

Какой лучший способ сделать это для многих users?

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

использование .apply метод:

In [24]: df = pd.DataFrame({'user_a':['A','B','C',np.nan],'user_b':['A','B',np.nan,'D']})

In [25]: df
Out[25]: 
  user_a user_b
0      A      A
1      B      B
2      C    NaN
3    NaN      D

In [26]: df['user'] = df.apply(lambda x: [i for i in x if not pd.isna(i)][0], axis=1)

In [27]: df
Out[27]: 
  user_a user_b user
0      A      A    A
1      B      B    B
2      C    NaN    C
3    NaN      D    D
0 голосов
/ 09 октября 2018

Использовать пропущенные значения для прямого заполнения, а затем выбрать последний столбец по iloc:

df = pd.DataFrame({
         'user_a':['A','B','C',np.nan,np.nan],
         'user_b':['A','B',np.nan,'D',np.nan]
})

df['user'] = df.ffill(axis=1).iloc[:, -1]
print (df)
  user_a user_b user
0      A      A    A
1      B      B    B
2      C    NaN    C
3    NaN      D    D
4    NaN    NaN  NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...