2013-05-24 3 views
0

У меня есть серия Pandas (фрагмент большего размера DF, соответствующий одной записи), который я хотел бы отображать как html. Хотя я могу преобразовать Series в DataFrame и использовать функцию .to_html(), это приведет к выводу двух столбцов html. Чтобы сэкономить место/дать лучшее соотношение сторон, я хотел бы вернуть таблицу из четырех или шести столбцов HTML, в которой серия была перенесена на два или три набора столбцов индексного значения, например.pandas series to multi-column html

import pandas as pd 
s = pd.Series([12,34,56,78,54,77], index=['a', 'b', 'c', 'd', 'e','f']) 
#pd.DataFrame(s).to_html() 
#will yield 2 column hmtl-ed output 
# I would like a format like this: 
a 12 d 78 
b 34 e 54 
c 56 f 77 

Это то, что я в настоящее время:

x = s.reshape((3,2)) 
y = s.index.reshape((3,2)) 
new = [ ] 
for i in range(len(x)): 
    new.append(y[i]) 
    new.append(x[i]) 
z = pd.DataFrame(new) 
z.T.to_html(header=False, index=False) 

Есть ли лучший способ, которым я мог пропустить?

благодаря Zach ф

+0

Вам нужно, чтобы он был html или может быть также строкой? – elyase

+0

Целью является вывод в html. поскольку уже существует функция to_html для DataFrame, я думаю, что использование было бы проще. но если у вас есть другое решение - я все уши. – zach

ответ

1

Это проще. Порядок немного отличается (читается через строки, а не столбцы), но я не уверен, что это будет иметь для вас значение.

In [17]: DataFrame(np.array([s.index.values, s.values]).T.reshape(3, 4)) 
Out[17]: 
    0 1 2 3 
0 a 12 b 34 
1 c 56 d 78 
2 e 54 f 77 

Как и в вашем примере, вам нужно опустить «заголовок» и индекс из HTML.

+0

Привет, Dan, в то время как формат немного отличается от того, что мне хотелось бы, вы намного лучше. Я собираюсь подождать еще нескольких минут, чтобы увидеть, если кто-нибудь еще курит, прежде чем принимать это. – zach

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