You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将欧元兑美元汇率数据转为区间数列时遇维度错误求助

解决pd.cut()报错ValueError: Input array must be 1 dimensional的问题

问题根源

你筛选后得到的是1列的DataFrame(形状6346×1),而pd.cut()要求输入是一维结构(比如Series、numpy一维数组),二维的DataFrame不符合要求,因此触发错误。

解决方法

以下两种方式都可以将数据转为一维结构,解决报错:

方法1:提取DataFrame的列转为Series

直接通过列名或位置索引提取目标列,得到一维的Series对象:

import pandas as pd
import numpy as np

# 读取并筛选数据
df = pd.read_csv('汇率数据.csv')
df['date'] = pd.to_datetime(df['date'])
filtered_df = df[df['date'] >= '2017-01-02']

# 提取汇率列(替换为你的实际列名)
rate_series = filtered_df['欧元兑美元汇率']
# 调用pd.cut生成区间变异数列
interval_data = pd.cut(rate_series, bins=你的区间数量)

方法2:转为numpy一维数组

如果不确定列名,可通过位置索引提取列并转为numpy一维数组:

# 取筛选后DataFrame的第一列,转为一维数组
rate_array = filtered_df.iloc[:, 0].values
# 生成区间数据
interval_data = pd.cut(rate_array, bins=你的区间数量)

验证方式

执行以下代码确认数据维度是否正确:

print(filtered_df.shape)  # 输出 (6346, 1),二维DataFrame
print(rate_series.shape)  # 输出 (6346,),一维Series

内容的提问来源于stack exchange,提问作者Pulf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:05:30