我有一个定义为df_in
的数据帧:
import pandas as pd
dic_in = {'A':['aa','bb','cc','dd','ee','ff','gg','uu','xx','yy','zz'],
'B':['200','200','200','400','400','500','700','700','900','900','200'],
'C':['da','cs','fr','fs','se','at','yu','j5','31','ds','sz']}
df_in = pd.DataFrame(dic_in)
我想研究列B
,让具有相同连续值的所有行都被分配一个新值(根据我将要描述的特定规则)。我将举一个更清楚的例子:前三个rows['B']
等于200
。因此,他们所有人都将分配数字1;第四个和第五个row['B']
等于400
,因此他们将被分配为数字2。这个过程重复到最后。
最终结果(df_out
)应该如下所示:
注意:
row['B']
等于200
,但分配给它的新值是6
,而不是{你能给我一个聪明的方法来用熊猫来达到这样的效果吗?在
PS:手动映射值没有帮助,因为这是一个测试用例,最终我将有数千行要映射。应该是自动的。在
可以按^{} 移位列进行比较,然后使用^{} :
相关问题 更多 >
编程相关推荐