【发布时间】:2026-01-31 15:10:01
【问题描述】:
我正在尝试向我的 df 添加一个新列,该列将由同一 df 中其他列的范围映射。我正在使用pandas.series.between() 函数定义新值,但出现错误:
TypeError: unhashable type: 'Series'
这是我尝试过的:
my_dict = {df['column'].between(0.0, 5.0) : 1,
df['column'].between(5.1, 7.0) : 2,
df['column'].between(7.1, 10.0) : 3,
df['column'].between(10.1, 13.0) : 4,
df['column'].between(13.1, 16.0) : 5,
df['column'].between(19.1, 22.0) : 6,
df['column'].between(22.1, 25.0) : 7,
df['column'].between(25.1, 28.0) : 8,
df['column'].between(28.1, 31.0) : 9,
df['column'].between(31.1, 34.0) : 10,
df['column'].between(34.1, 37.0) : 11,
df['column'].between(37.1, 40.0) : 12,
df['column'].between(40.1, df['column'].max()) : 13
}
df['new_column'] = df.map(my_dict)
如果在没有 s.bewtween() 的情况下还有其他方法可以做到这一点,那也是一个不错的选择。
【问题讨论】:
-
你可以使用
np.select() -
请提供数据框样本
-
我找到了答案 pd.cut() *.com/questions/44151071/…
标签: python pandas dataframe dictionary range