假设我有一个dataframe,其中包含两个时间序列变量,如下所示:
| 温度|湿度|
| --------------|--------------|
| 17.6 |八十八|
| 22.1 |八十一|
| 13.6 |八十八|
| 26.4 |七十一|
| 25.6 |七十二|
下面是它的pd.DataFrame
:
data = {
'Temperature': [17.6, 22.1, 13.6, 26.4, 25.6],
'Humidity': [88, 81, 88, 71, 72]
}
df = pd.DataFrame(data)
我想得到一个表,其中有这两个变量,作为轴,和值的频率(名义或相对)的组合条件。
例如,最终输出将被格式化,其中分箱温度作为列,分箱湿度作为索引:
| | 0-4 |4-8|8-12|12-16|16-20|二十到二十四岁|二十四到二十八|28-32|
| --------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|
| 0-10 |||||||||
| 十到二十|||||||||
| 20-30|||||||||
| 三四十岁|||||||||
| 四五十岁|||||||||
| 五六十|||||||||
| 六七十|||||||||
| 七八十|||||||||
| 八九十|||||||||
| 九十到一百|||||||||
我知道如何分箱并获得一个分箱的计数,但我真的不知道如何计算两个分箱条件的组合出现次数。有人能给我指出正确的方向吗?
df['T_binned'] = pd.cut(df['Temperature'],bins=np.arange(0,32,4))
df['H_binned'] = pd.cut(df['Humidity'],bins=np.arange(0,100,10))
counts_T = df.groupby(by='T_binned').count()
counts_H = df.groupby(by='H_binned').count()
2条答案
按热度按时间j0pj023g1#
使用
crosstab
:或所有类别:
输出:
iswrvxsc2#
我认为这样做是可行的:
首先,我们为count创建一个列:
然后我们计算每对bin中的数字:
最后,我们创建一个 Dataframe ,其中
index
是温度箱,column
是湿度箱,values
是每个箱中的计数。