我对编程非常陌生,所以请放轻松。我使用Visual Studio Code作为编辑器,在其中使用一些python文件。当我运行代码时,例如说一个pandas.dataframe.head()函数,它在终端中不返回任何内容。但是,当我打印相同的返回值时,我正在按预期从csv文件中看到数据。
尝试使用谷歌搜索答案,但还不清楚。
import pandas as pd
df = pd.read_csv('sample.csv')
df.head()
# print(df.head())
期望某些数据显示在终端中
答案 0 :(得分:1)
我相信您已经学会使用Jupyter
或python控制台。 VS Code是一个IDE;它基本上是一款美化的文本编辑器,具有可帮助开发人员的功能。您必须习惯在控制台中使用python,在该控制台中它会自动打印每行/命令的结果,而现在您可能正在创建脚本并期望发生相同的事情。我不认为“回报与您的要求有任何关系,因为它的作用方式相同。
编辑 (我找到了实际的文档)
在交互式控制台中,python每次执行后都会调用sys.displayhook
。这是实际的文档:
如果value不为None,则此函数将repr(value)打印到sys.stdout, 并将值保存在Builtins._中。如果repr(value)不可编码 sys.stdout.encoding与sys.stdout.errors错误处理程序(这是 可能是“严格”),将其编码为sys.stdout.encoding 'backslashreplace'错误处理程序。
在对表达式求值的结果上调用sys.displayhook 在交互式Python会话中输入这些值的显示 可以通过分配另一个单参数函数来定制 sys.displayhook。
这是我非常基本的解释 我希望我解释得足够清楚
在python控制台中,每行/命令的结果在执行后打印(即:当您按下Enter键时)。 (对于上下文,如果没有返回任何其他内容(因此未打印),则每个函数/操作都会隐式返回None
)
运行python脚本时,除非明确打印(其他情况是未捕获的错误回溯,日志记录或写入stdout
等),否则控制台中不会显示任何内容 < / p>
基本上就是那行
df.head()
在脚本中,对head
执行df
函数,并返回结果,但是结果没有任何变化,除非您将其分配给变量或打印出来。就像写一样:
"This will only print in a console"
如果该行在交互式控制台中执行,它将使用该值调用sys.displayhook
并打印结果:
'This will only print in a console'
但是,如果在脚本中运行,则除非分配了变量,否则基本上是不需要的代码行。
基本上,控制台假定您希望在编写代码时看到结果。 (基本上在不打印print
且显式运行None
时不会被调用的每一行调用特殊的print
)它仅在明确要求或其他特殊情况下才会打印到控制台。
答案 1 :(得分:0)
您的“ sample.csv”文件的前5行是否每次出现空白?如果未选择,则df.head()返回(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.head.html)的前5行。所以:
import pandas as pd
df = pd.DataFrame({'animal':['alligator', 'bee', 'falcon', 'lion', 'monkey', 'parrot', 'shark', 'whale', 'zebra']})
print(df.head())
animal
0 alligator
1 bee
2 falcon
3 lion
4 monkey
答案 2 :(得分:0)
如果要从函数中获取值并在其他地方使用它,则应在函数定义的末尾返回该值。这样,当您在代码中的某个位置调用函数时,可以将其分配给一个变量,该变量将存储函数的输出
例如
#test.py
def square(i):
return i*i
def main():
eight_square = square(8)
print(eight_square)
只有打印输出,您才能在运行python3 test.py
时在终端上实际看到它。还有其他方法可以检查变量中的值,例如使用调试器。如果未设置Visual Studio,则可以使用调试器对其进行配置。
将在必须找到变量值并必须启动调试器的位置设置一个断点。