Python prettytable get_string ошибка - PullRequest
0 голосов
/ 25 июня 2018

У меня есть фрейм данных pandas, например

>>> df
Out[126]: 
      score        id
0  0.999989    654153
1  0.992971    941351
2  0.979518    701608
3  0.972667    564000
4  0.936928    999843

, и я хочу преобразовать его в prettytable (для записи в текстовый файл с лучшей читаемостью)

import prettytable as pt
x = pt.PrettyTable()
for col in list(df.columns):
    x.add_column(col,df[col])

затем внутри функции я использую

print(x.get_string())

и получаю эту ошибку

File "<ipython-input-130-8db747160a67>", line 5, in <module>
verbose   = True)

File "<ipython-input-129-4e27c067e0b5>", line 104, in lda_save_eval
print(x.get_string())

File "C:\Users\USER\Anaconda3\envs\tensorflow\lib\site-packages\prettytable.py", line 990, in get_string
self._compute_widths(formatted_rows, options)

File "C:\Users\USER\Anaconda3\envs\tensorflow\lib\site-packages\prettytable.py", line 894, in _compute_widths
widths = [_get_size(field)[0] for field in self._field_names]

File "C:\Users\USER\Anaconda3\envs\tensorflow\lib\site-packages\prettytable.py", line 894, in <listcomp>
widths = [_get_size(field)[0] for field in self._field_names]

File "C:\Users\USER\Anaconda3\envs\tensorflow\lib\site-packages\prettytable.py", line 77, in _get_size
lines = text.split("\n")

AttributeError: 'int' object has no attribute 'split'

Любые подсказки?

1 Ответ

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

попробуйте print (x.get_string()) вместо print(x.get_string)

Для улучшения попробуйте это: Для записи в текстовый файл с лучшей читаемостью вам не нужно использовать цикл tabulate это дает вам большегибкий.

попробуйте это,

from tabulate import tabulate
print (tabulate(df,df.columns,tablefmt='psql'))

В tablefmt вы можете предоставить множество опций для получения разных стилей.для получения более подробной информации см. ссылка

...