报错的原因是pd.cut() 函数要求输入的数组必须是一维的,而df_ufo[(df_ufo['longitude'] > -180) & (df_ufo['longitude'] < 180)].sort_values(by='longitude')返回的是一个 DataFrame,不是一维的数组。

要解决这个问题,可以将 DataFrame 中的某一列提取出来,然后再进行切割。例如,可以提取出df_ufo[(df_ufo['longitude'] > -180) & (df_ufo['longitude'] < 180)].sort_values(by='longitude')['longitude']作为pd.cut() 函数的输入。修改后的代码如下:

pd.cut(df_ufo[(df_ufo['longitude'] > -180) & (df_ufo['longitude'] < 180)].sort_values(by='longitude')['longitude'], bins=[-180,-150,-120,-90,-60,-30,0,30,60,90,120,160,180])
Pandas pd.cut() 报错 ValueError: Input array must be 1 dimensional 解决方法

原文地址: https://www.cveoy.top/t/topic/fujg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录