Python Pandas: как сгруппировать два столбца в общий столбец - PullRequest
0 голосов
/ 06 ноября 2018

Я создал фрейм данных pandas из нескольких файлов CSV.

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

Now:

0  X  Y
1  6  
2     7
3  1
4     5

Я хочу:

0  X  
1  6  
2  7
3  1
4  5

Спасибо.

Ответы [ 3 ]

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

Может проверить с fillna

df.X.mask(df.X.eq('')).fillna(df.Y)
Out[232]: 
0    6.0
1    7.0
2    1.0
3    5.0
Name: X, dtype: float64
0 голосов
/ 06 ноября 2018

Вы можете сделать dtype равным str / object, а затем выполнить горизонтальную конкатенацию / суммирование следующим образом:

df = pd.DataFrame({'X': ['6', '', '1', ''], 'Y': ['', 7, '', 5]})

df.astype(str).sum(axis=1)

# returns the following Series which you can assign to a new column of your dataframe
0   6
1   7
2   1
3   5
0 голосов
/ 06 ноября 2018

Предполагая, что это пустые строки ''

Используйте groupby с функцией вызова, которая преобразует 'Y' в 'X'

df.mask(df.eq('')).groupby(lambda x: {'Y': 'X'}.get(x, x), axis=1).first()

   0  X
0  1  6
1  2  7
2  3  1
3  4  5

В противном случае игнорируйте mask

df.groupby(lambda x: {'Y': 'X'}.get(x, x), axis=1).first()

   0  X
0  1  6
1  2  7
2  3  1
3  4  5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...