我有一个这样的dataframe:
df =
date&time measur_temp cal_temp diff
0 2022-01-28 27 20 7
1 2022-01-29 27 23 4
2 2022-01-30 30 33 3
3 2022-01-31 33 32 1
我想创建一个新的表(dataframe也可以),其中包含diff值的范围,measur_temp的范围,如果它们落入这些bin中,则对它们进行计数:例如:在上述df的第一行中,diff为7并且位于范围7和10之间,并且温度位于范围21和30之间。把这当作一个事件。
最后的输出应该是这样的,有人能帮我吗?.
measur_Temp_range diff<5 5=<diff<10 10=<diff<15 15=<diff<=20
0 10-20 0.0 0.0
1 21-30 1.1 0.0
2 31-40 2.0 0.0
3 41-50 0.0 0.0
3条答案
按热度按时间thtygnil1#
对于这个问题,您可以使用
np.select
以一种简单的方式解决问题这给出了预期的结果:
如果有多个条件
&
或|
,请记住使用()
与使用
crosstab
或pivot
相比,这可能要长一点。但是,与crosstab
或pivot
相比,它需要的数据准备较少68de4m5k2#
另一种可能的解决方案:
输出:
wb1gzix03#
将
crosstab
与cut
合并列一起使用:如果需要,还可以使用以下方法对箱的动态标签进行计数: