Python 漂亮 get_string 错误
Python prettytable get_string error
我有一个 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'
有什么线索吗?
尝试 print (x.get_string())
而不是 print(x.get_string)
要改进,试试这个,
为了写入具有更好可读性的文本文件,您不需要循环使用 tabulate
它使您更加灵活。
试试这个,
from tabulate import tabulate
print (tabulate(df,df.columns,tablefmt='psql'))
在tablefmt
中您可以提供很多选项来获得不同的风格。
有关详细信息,请参阅此 link
我有一个 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'
有什么线索吗?
尝试 print (x.get_string())
而不是 print(x.get_string)
要改进,试试这个,
为了写入具有更好可读性的文本文件,您不需要循环使用 tabulate
它使您更加灵活。
试试这个,
from tabulate import tabulate
print (tabulate(df,df.columns,tablefmt='psql'))
在tablefmt
中您可以提供很多选项来获得不同的风格。
有关详细信息,请参阅此 link