gpt4 book ai didi

python - pandas to_numeric/to_* 如果输入是数据帧切片则引发缓冲区错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:35 24 4
gpt4 key购买 nike

如果输入是整个数据帧,则按照我读过的方式在数据帧上应用 pandas to_numeric 或 to_datetime 函数可以正常工作,但如果输入是数据帧的多个列的一部分则不行。

我是做错了什么还是这是意外行为?

考虑:

import pandas as pd
import numpy as np

test_df = pd.DataFrame(np.random.randn(50,5))
print(test_df.iloc[:25,2:4])
pd.to_numeric(test_df.iloc[:25, 2:4])

产生错误

ValueError:缓冲区的维数错误(预期为 1,得到 2)

我在 Python 3.4.3 的 Anaconda 堆栈 (2.4) 上运行 pandas v17.0.0。

通过在数据框 iloc 选择上应用来运行 to_numeric,即

test_df.iloc[:25, 2:4].apply(pd.to_numeric)

工作正常。

上面的这种行为,即在数据帧的切片上,是故意的吗?谢谢!

最佳答案

这也不适用于完整的数据帧(pd.to_numeric(test_df) 将给出相同的错误)作为 to_datetimeto_numeric函数仅设计用于处理一维数据(系列、一维数组、列表)。查看docstring .

因此,如果您想同时在多个列上使用此函数,您使用 apply 的方法是正确的。

关于python - pandas to_numeric/to_* 如果输入是数据帧切片则引发缓冲区错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33735874/

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