2013-11-15 2 views
1

У меня есть панд DataFrame как профилированный NX5Как выбрать из различных столбцов условно в панд

['','','A','',''] 
['','C','','',''] 
['','A','','',''] 
['','','','T',''] 
. 
. 
. 

Я хочу, чтобы преобразовать его в форме NX1 получение непустых значений

['A'] 
['C'] 
['A'] 
['T'] 
. 
. 
. 

Как это может сделать?

+0

Вы хотите решение pandas или pythonic? – yuvi

+0

Решение Pandas лучше – gungor

ответ

2

Вы можете позвонить "".join для каждой строки:

df.apply("".join, axis=1) 

Если вы не уверены, что каждая строка имеет только одно не пустое значение, следующий метод лучше:

import pandas as pd 

df = pd.DataFrame(
    [['','','A','',''], 
    ['','C','','',''], 
    ['','A','','',''], 
    ['','','','T','']] 
) 

s = df.stack() 
print s[s!=""] 

выход:

0 2 A 
1 1 C 
2 1 A 
3 3 T 
dtype: object 

для более чем одной колонки:

r = s[s!=""] 
r.groupby(level=0).apply(pd.DataFrame.reset_index, drop=True).unstack() 
+0

Спасибо, это точно – gungor

Смежные вопросы