我正在尝试将一个连续值(0到360度之间的角度)离散为8个象限(N,NW,W,SW,S,SE,E,NE),我想将每个值替换为它所在象限的2个字符。为此,我通过以下方式使用pd.cut()函数:
bins = pd.IntervalIndex.from_tuples([(0,22.5),(22.5,67.5),(67.5,112.5),(112.5,157.5),(157.5, 202.5), (202.5,247.5),(247.5,292.5),(292.5,337.5),(337.5,360)])
labs = ['W', 'SW', 'S', 'SE', 'E', 'NE', 'N', 'NW', 'W']
df_variables[3] = pd.cut(df_variables[3],bins, include_lowest = True, labels = labs)
这不起作用:我希望函数用该象限的2个字符替换每个值,例如用“ N”替换270。我误会了什么吗?取而代之的是,每个值都替换为其所在的bin,因此我得到的不是(270),而是(247.5,292.5]。
我认为这与这个问题有关: https://github.com/pandas-dev/pandas/issues/21233
还有其他方法可以将垃圾箱替换为那些字符吗? 我还尝试修改数据框列的Categories属性:
df_variables[3].categories = labs
但这仍然无法实现我想要的。
任何帮助将不胜感激:)