小编wkz*_*zhu的帖子

Jupyter笔记本陷入了pdb模式

我正在使用Jupyter(IPython)笔记本,其中pdb/ipdb运行良好,除了一个问题:如果我在pdb模式下意外运行我的pdb所在的同一个单元格,输出消失,整个笔记本卡住了我无法再运行任何命令.我也试过打断或重启内核; 不起作用.我唯一的选择是关闭笔记本电脑,然后重新启动它.

有没有其他人遇到这个问题/知道解决方案?我每次犯这个错误都要重新启动笔记本电脑非常烦人.

以下是问题的屏幕截图.下面我按照预期的pdb模式:

在此输入图像描述

如果我(不小心)运行我的pdb所在的同一个单元格,那么笔记本会在尝试运行该单元格时遇到困难,并且不会运行任何其他单元格(如下面的单元格).

在此输入图像描述

python ipython pdb ipdb jupyter-notebook

8
推荐指数
1
解决办法
1655
查看次数

Python 击中选项卡失败并显示 Python AttributeError:模块“readline”没有属性“redisplay”

在 Windows 上使用 Python 3.7.3 (Anaconda),点击 tab 会导致以下回溯:

Readline internal error
Traceback (most recent call last):
  File "C:\...\anaconda3\lib\site-packages\pyreadline\console\console.py", line 768, in hook_wrapper_23
    res = ensure_str(readline_hook(prompt))
  File "C:\...\anaconda3\lib\site-packages\pyreadline\rlmain.py", line 571, in readline
    self._readline_from_keyboard()
  File "C:\...\anaconda3\lib\site-packages\pyreadline\rlmain.py", line 536, in _readline_from_keyboard
    if self._readline_from_keyboard_poll():
  File "C:\...\anaconda3\lib\site-packages\pyreadline\rlmain.py", line 556, in _readline_from_keyboard_poll
    result = self.mode.process_keyevent(event.keyinfo)
  File "C:\...\anaconda3\lib\site-packages\pyreadline\modes\emacs.py", line 243, in process_keyevent
    r = self.process_keyevent_queue[-1](keyinfo)
  File "C:\...\anaconda3\lib\site-packages\pyreadline\modes\emacs.py", line 286, in _process_keyevent
    r = dispatch_func(keyinfo)
  File "C:\...\anaconda3\lib\site-packages\pyreadline\modes\basemode.py", line 257, in complete
    completions = self._get_completions()
  File "C:\...\anaconda3\lib\site-packages\pyreadline\modes\basemode.py", line 200, …
Run Code Online (Sandbox Code Playgroud)

python readline python-3.x anaconda

7
推荐指数
1
解决办法
1660
查看次数

带有 dicts 的 df.append() 将布尔值转换为 1 和 0

假设我创建了一个空数据框:

df = pd.DataFrame()
Run Code Online (Sandbox Code Playgroud)

我通过df.append()以下方式添加了一个字典:

df.append({'A': 'foo', 'B': 'bar'}, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

这给了我预期的结果

     A    B
0  foo  bar
Run Code Online (Sandbox Code Playgroud)

但是,如果 dict 值中有任何布尔值,即,

df.append({'A': True, 'B': False}, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

布尔值转换为浮点数。

     A    B
0  1.0  0.0
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况/如何防止这种转换?如果可能的话,我宁愿不对完成的数据帧做任何事情(即,不喜欢将浮点数强制转换回布尔值)。

编辑:找到了我自己的解决方案,但仍然想知道为什么会发生上述行为。我的解决办法是:

df.append(pd.DataFrame.from_dict({'A': True, 'B': False}, orient='index').T, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

这给出了所需的

      A      B
0  True  False
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

6
推荐指数
1
解决办法
171
查看次数

由于数字格式为文本,将 Excel 文件读取到 Python 失败

我有大量 Excel 文件,每个文件都有一列,其中数字格式为文本。Excel 给出错误“此单元格中的数字格式为文本或前面带有撇号” - 请参阅第三列,其中单元格有一个绿色三角形。

在此输入图像描述

我的目标是在 Pandas 中打开所有这些文件,而不必手动打开每个文件并将列转换为数字。但是,pd.read_excel() 失败并出现以下xlrd错误:

XLRDError: ZIP file contents not a known type of workbook
Run Code Online (Sandbox Code Playgroud)

毫不奇怪,当我xlrd直接使用时:wb = xlrd.open_workbook(filename)我得到同样的错误。

我还尝试了 openpyxl: wb = openpyxl.load_workbook(filename),它给了我这个:

KeyError: "There is no item named 'xl/_rels/workbook.xml.rels' in the archive"
Run Code Online (Sandbox Code Playgroud)

我确认,如果我手动将列转换为 Excel 中的数字并重新保存工作簿,则 pandas (xlrd) 和 openpyxl 都可以打开该文件。

有人有什么想法吗?

excel vba xlrd pandas openpyxl

5
推荐指数
1
解决办法
5141
查看次数