Python 3.x 在数据框中打印None和NaN值会产生令人困惑的结果
我正在使用SQL查询,使用Pandas read_SQL()函数从SQL Server数据库获取一些数据。在最初的几次打嗝之后,一切似乎都很顺利。但是,使用print()显示提取的数据会产生非常混乱的输出 在查询数据库时,我知道其中一个表的最新行尚未填充。因此,列的顶部行包含字符串,而底部行不包含字符串。这可以通过使用以下数据帧来简化Python 3.x 在数据框中打印None和NaN值会产生令人困惑的结果,python-3.x,pandas,dataframe,nan,nonetype,Python 3.x,Pandas,Dataframe,Nan,Nonetype,我正在使用SQL查询,使用Pandas read_SQL()函数从SQL Server数据库获取一些数据。在最初的几次打嗝之后,一切似乎都很顺利。但是,使用print()显示提取的数据会产生非常混乱的输出 在查询数据库时,我知道其中一个表的最新行尚未填充。因此,列的顶部行包含字符串,而底部行不包含字符串。这可以通过使用以下数据帧来简化 id text 0 1 some words <-- top rows contain strings 1 2
id text
0 1 some words <-- top rows contain strings
1 2 None
2 3 None
3 4 None
4 5 None
5 6 None
6 7 None
7 8 None
8 9 None
9 10 None <-- bottom rows contain None
在Python 3.4中打印数据帧时,我得到了预期的输出,即:
id text
0 1 some words
1 2 None
2 3 None
3 4 None
4 5 None
5 6 None
6 7 None
7 8 None
8 9 None
9 10 None
但是,在打印大型数据帧时,输出会自动拆分,以仅显示顶行和底行。由于此演示只有10行,因此我将设置显示参数,以便即使使用此小数据帧也能进行拆分:
with pd.option_context('display.max_rows', 8, 'display.max_columns', 3):
print(tempDF)
但是,现在我得到以下输出:
id text
0 1 some words
1 2 None
2 3 None
3 4 None
.. .. ...
6 7 NaN
7 8 NaN
8 9 NaN
9 10 NaN
看起来,如果分割下面的所有值都是None,那么它们将被解释为NaN。但是,拆分上方的相同值(也有一些真正的字符串)被解释为无
关于None和NaN之间的区别似乎有很多争论。将相同的数据显示为两种不同的类型似乎非常令人困惑。我不知道这是由蟒蛇还是熊猫引起的。这是预定的功能还是bug?这肯定不是预定的功能。你能发布错误报告吗?更奇怪的是,当
text
列为allNone
s时,显示在顶部和底部都是NaN。这当然是一份提交的bugBug报告。作为参考,此问题可在此处跟踪:
id text
0 1 some words
1 2 None
2 3 None
3 4 None
.. .. ...
6 7 NaN
7 8 NaN
8 9 NaN
9 10 NaN