Как объединить два столбца из кадра данных - PullRequest
0 голосов
/ 06 июня 2018

У меня есть CSV-файл, который я сделал с ним, я объединил два разных файла, используя pandas.merge.Но теперь у меня есть несколько столбцов, которые называются, например, column_x и column_y.Поэтому я хочу объединить эти два столбца, чтобы получить один столбец.Зная, что эти два столбца могут быть представлены следующим образом:

Column_x     Column_y
       2          2.1 
                    3
   4.322            4
       5

И затем получите один из этих двух результатов:

Column  
     2  
     3    
 4.322 
     5

Или:

Column
     2.1 
     3
     4
     5

Любой из этих двух результатов удовлетворит меня

Ответы [ 4 ]

0 голосов
/ 06 июня 2018

Одним из способов является это:

df['Column']= df['Column_x'].replace('', np.NaN).fillna(df.Column_y)
0 голосов
/ 06 июня 2018
df.replace('', np.nan).Column_x.fillna(df.Column_y)

или

df.replace('', np.nan).Column_y.fillna(df.Column_x)

Соответственно, эти выходные данные:

0    2.000
1    3.000
2    4.322
3    5.00

и

0    2.1
1    3.0
2    4.0
3    5.0

Если ваши пустые «ячейки» в вашем кадре данныхуже NaN, вы можете пойти дальше и опустить .replace('', np.nan)

0 голосов
/ 06 июня 2018

Вам необходимо:

df.bfill(axis=1)

    Column_x    Column_y
0   2.100   2.1
1   3.000   NaN
2   4.322   4.0
3   5.000   NaN

Или

df.ffill(axis=1)

   Column_x Column_y
0   NaN     2.1
1   3.000   3.0
2   4.322   4.0
3   5.000   5.0

Вы можете просто использовать df.ffill(axis=1)['Column_x'] для достижения первого результата и df.ffill(axis=1)['Column_y'] для достижения второго результата.

0 голосов
/ 06 июня 2018

Вы можете использовать combine_first:

df['Column'] = df['Column_x'].combine_first(df['Column_y'])

Выход:

   Column_x  Column_y  Column
0     2.000       2.1   2.000
1       NaN       3.0   3.000
2     4.322       4.0   4.322
3     5.000       NaN   5.000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...