gpt4 book ai didi

python - sublime 3 与 jupyter 的输出之间的差异

转载 作者:行者123 更新时间:2023-11-28 17:12:36 27 4
gpt4 key购买 nike

我对 sublime text 的输出有疑问。当我运行这个时:

import pandas as pd
import numpy as np


df = pd.DataFrame()
df['name'] = ['John', 'Steve', 'Sarah']
df.assign (age =[30,31,32])
print (df)

我得到这个结果:

        name
0 John
1 Steve
2 Sarah

我认为这是一个错误,因为我应该可以看到年龄列。

当我在 jupyter 中运行此代码时,我获得:

    name    age
0 John 30
1 Steve 31
2 Sarah 32

有人知道会发生什么吗?

感谢帮助

最佳答案

这绝不是错误或解释器不匹配

当您调用 df.assign(age =[30,31,32]) 时,您正在制作 df 的副本,其中包含一个附加列 age 。在 REPL-like 编辑器中完成此操作后,您会看到呈现的输出。但是在大多数文本编辑器中,这不会显示,因为您没有打印输出。您正在使用 DataFrame 对象的 __repr__ 方法。除非文本编辑器实现了呈现 __repr__ 输出的方法,否则您永远不会看到 df.assign(age =[30,31,32]) 的输出。

现在,jupyter 另一方面,具有 REPL 功能,因此将根据输出的 __repr__ 方法显示命令,无需调用 print 函数。因此,jupyter 将显示 df.assign(age =[30,31,32]) 的输出。

底线仍然是您没有就地更改数据框。 sublime 和 jupyter 都会打印结果,如果代码如下:

import pandas as pd
import numpy as np


df = pd.DataFrame()
df['name'] = ['John', 'Steve', 'Sarah']
df = df.assign(age=[30,31,32])
print(df)

希望对您有所帮助。

关于python - sublime 3 与 jupyter 的输出之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46589153/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com