gpt4 book ai didi

python - 尝试设置 pandas 列名称时出现 "Bus error: 10"

转载 作者:行者123 更新时间:2023-12-01 03:50:44 25 4
gpt4 key购买 nike

这是我正在执行的代码,尝试按索引重命名 pandas 列:

import pandas as pd

df = pd.read_csv('input.csv', dtype='unicode', delim_whitespace=True)
df.columns.values[2] = "id"
print(df)

我很确定这不是最好的方法,但是当我使用 Python 3.5 运行它时,我得到:

$ python3.5 test.py
Bus error: 10

这是我第一次看到这样的错误。没有回溯,只有这个输出字符串。

总线错误:10 是什么意思?

<小时/>

这是input.csv内容:

visitIp        userId   idSite
128.227.50.161 a 35
24.222.206.154 a 35
10.12.0.1 a 35
10.12.0.1 a 35
10.12.0.1 a 35
24.222.206.154 a 35

(使用pandas 0.17.1)

最佳答案

Bus error当处理器无法访问无效的内存地址时会发生这种情况。

df.columnsIndex 的一个实例,它是 pandas 中的不可变对象(immutable对象)。任何改变它的操作实际上都会返回一个新对象。修改其元素是非法的,例如 df.columns[2] = 'id' 会引发异常。

您正在访问和修改索引的基础数据。实际上,不是直接的数据,而是数据的 numpy view,它可能是一个临时对象。 (在内部,Index.values 是一个返回 self._data.view(ndarray) 的属性。)

我也无法重现这种行为,而且我不知道到底发生了什么以及为什么它现在起作用。它很可能是 numpy C/cython 代码中未定义的行为。

关于python - 尝试设置 pandas 列名称时出现 "Bus error: 10",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38299205/

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