【发布时间】:2022-08-19 15:07:33
【问题描述】:
我试图通过使用第一个过滤器然后计算第二列的出现次数来计算 NumPy 数组的出现次数。
数据集信息:
data_dict = {
\'Outlook\' : [\'Sunny\', \'Sunny\', \'Overcast\', \'Rainy\', \'Rainy\', \'Rainy\', \'Overcast\', \'Sunny\', \'Sunny\',\'Rainy\', \'Sunny\', \'Overcast\', \'Overcast\', \'Rainy\']
,\'Temperature\': [\'Hot\', \'Hot\', \'Hot\', \'Mild\', \'Cool\', \'Cool\', \'Cool\', \'Mild\', \'Cool\', \'Mild\',\'Mild\',\'Mild\', \'Hot\', \'Mild\']
,\'Humidity\' : [\'High\', \'High\', \'High\', \'High\', \'Normal\', \'Normal\', \'Normal\', \'High\',\'Normal\',\'Normal\', \'Normal\', \'High\', \'Normal\', \'High\']
,\'Wind\': [\'False\', \'True\', \'False\', \'False\', \'False\', \'True\', \'True\', \'False\', \'False\', \'False\', \'True\', \'True\', \'False\', \'True\']
,\'label\': [\'No\', \'No\', \'Yes\', \'Yes\', \'Yes\', \'No\', \'Yes\', \'No\', \'Yes\', \'Yes\', \'Yes\', \'Yes\', \'Yes\', \'No\']
}
结果数据框:
Outlook Temperature Humidity Wind label
0 Sunny Hot High False No
1 Sunny Hot High True No
2 Overcast Hot High False Yes
3 Rainy Mild High False Yes
4 Rainy Cool Normal False Yes
...
我想得到以下信息:
Outlook No Yes All
Sunny 2 3 5
Overcast 4 0 4
Rain 3 2 5
这是我的代码尝试(但是它分别总结了每一列):
result = np.where(df.columns.values == \'label\')
result1 = np.where(df.columns.values == \'Outlook\')
lst = rows[:, [result, result1]]
uni, data = np.unique(lst, return_counts=True)
-
我认为这个问题是缺失的。或者,请考虑在codereview.stackexchange.com 上发帖进行审核。
-
@JérômeRichard,问题是我如何将信息纳入总体计数“实例数”并计算每个 Outlook 标准(如晴天、阴天和雨天)的“是”和“否”?
-
通过我的尝试,我只能得到每列“array([5, 4, 5, 5, 9], dtype=int64)\" 的每个唯一项目的总数,因为您可以看到前 3 个项目来自 Outlook 列和最后两个来自标签列。根据上面的表格示例,我想得到类似的结果。