python - 值错误 : 'object too deep for desired array'

标签 python pandas numpy dataframe

我在 Python 程序中遇到 ValueError: 'object too deep for desired array'。 使用 numpy.digitize 时出现此错误。
我认为这就是我使用 Pandas DataFrames 的方式:
为了简单起见(因为这是通过外部库完成的),我的程序中有一个列表,但该库需要一个 DataFrame,所以我这样做:

ts = range(1000)
df = pandas.DataFrame(ts)
res = numpy.digitize(df.values, bins)

但是 df.values 似乎是一个列表数组而不是一个 float 数组。我的意思是:

array([[   0],
   [   1],
   [   2],
   ..., 
   [997],
   [998],
   [999]], dtype=int64)

请帮忙,我在这上面花了太多时间。

最佳答案

试试这个:

numpy.digitize(df.iloc[:, 0], bins)

您正在尝试从整个 DataFrame 中获取值。这就是为什么你得到二维数组。数组中的每一行都是 DataFrame 的一行。

关于python - 值错误 : 'object too deep for desired array' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39474056/

相关文章:

python - 在 groupby 对象内的列列表上生成滚动计算的更快方法

python - 有效检查Python中大量对象的欧氏距离

python - 将日期/时间拆分为句点的 If 语句

python - 跨网络的任务调度?

python - 使用 django.contrib.gis.measure.D 时出现 GeoDjango dwithin 错误

Java:查找某个字符并获取子字符串

python - 使用 pandas 从索引和值返回列名称

Python:两次时间之差的符号

Python:用 3D bool 索引 3D 数组并返回相同大小的 3D 数组......优雅

python - 如何在Python中获取数字或字符串的第二位数字?