2014-11-04 2 views
0

Я пытаюсь разобрать генератор для конструктора dataframe, pd.Dataframe testdf = pd.DataFrame(test). Я не могу указать, что каждая строка имеет разделитель табуляции. В результате я получаю единичный кадр данных, где каждая строка представляет собой целую строку значений, разделенных '\t'.Pandas dataframe от генератора, где каждая строка является разделенной табуляцией строкой

Я попробовал несколько других способов:

pd.read_csv(test) 
    pandas.io.parsers.read_table(test, sep='\t') 

, но ни одна из этих работ из них работают, потому что они не принимают генератор типа входного сигнала.

ответ

2

Не слишком знакомы с генераторами. Можете ли вы бросить их в понимание списка? Если да, то как насчет

pd.DataFrame([x.split('\t') for x in test]) 
+0

Great; вырезает линию и чувствует себя более pythonic, чем мое решение. –

0

Одно решение, которое я нашел бы использовать разделенную функцию на одной колонке, чтобы разбить его:

testdf_parsed = pd.DataFrame(testdf.row.str.split('\t').tolist(),) 

... и что делали работу для меня, но, может быть, есть более элегантный и существует простое решение, которое использует основные возможности Pandas?

0

Вы могли бы попробовать реализовать файл-подобный объект, который оборачивает ваш генератор, то кормление, что read_table.

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