【发布时间】:2020-08-23 12:15:46
【问题描述】:
我想用以下 python (3.8) 代码打印出一份报告,但是您可以看到 pandas 信息打印在顶部而不是底部。对于这种奇怪的行为,我似乎找不到任何解决方案。有关如何解决此问题的任何想法?
time = 600
file = 'election_file.csv'
report = (
f'Data Diagnostic Report\n'
f'Date & time: {time}\n'
f'Data file: {file}\n'
f'Data frame header (first five lines):\n {election.head()}\n\n'
f'Data frame information:\n {election.info()}\n'
f'end of report\n'
)
print(report)
输出:
time = 600...
<class 'pandas.core.frame.DataFrame'>
Index: 10 entries, Adams to Butler
Data columns (total 8 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Obama 10 non-null float64
1 Romney 10 non-null float64
2 margin 10 non-null float64
3 state 10 non-null object
4 total 10 non-null int64
5 turnout 10 non-null float64
6 voters 10 non-null int64
7 winner 9 non-null object
dtypes: float64(4), int64(2), object(2)
memory usage: 720.0+ bytes
Data Diagnostic Report
Date & time: 600
Data file: election_file.csv
Data frame header (first five lines):
Obama Romney margin state total turnout voters \
Adams 35.482334 63.112001 27.629667 PA 41973 68.632677 61156
Allegheny 56.640219 42.185820 14.454399 PA 614671 66.497575 924351
Armstrong 30.696985 67.901278 37.204293 PA 28322 67.198140 42147
Beaver 46.032619 52.637630 6.605012 PA 80015 69.483401 115157
Bedford 22.057452 76.986570 54.929118 PA 21444 66.619031 32189
winner
Adams Romney
Allegheny Obama
Armstrong Romney
Beaver Romney
Bedford Romney
Data frame information:
None
end of report
【问题讨论】:
-
在我看来
election.info()返回None这正是您看到的打印内容。f'{func()}'字符串的问题在于,当您创建字符串时,必须在创建字符串时调用func()。然后它被打印出来。所以你可以看到election.head()和election.info()都被在创建report的过程中调用了,但是report是在后面打印出来的。
标签: python pandas printing f-string