python - 如何根据熊猫中另一列数据框中的唯一值计算出现次数?请考虑以下示例
问题描述
protocol results:
tcp 0
tcp 1
udp 1
udp 0
tcp 1
icmp 0
我想要通过计数来输出:
[protocol] [frequency] [No. of 0's in results] [No. of 1's in results
tcp 3 1 2
udp 2 1 1
icmp 1 1 0
解决方案
使用crosstab
withDataFrame.add_prefix
和一些数据清理DataFrame
,然后通过DataFrame.insert
with添加第二列sum
:
df = (pd.crosstab(df.protocol, df.results)
.add_prefix('No ')
.reset_index()
.rename_axis(None, axis=1))
df.insert(1, 'freq', df.sum(axis=1))
print (df)
protocol freq No 0 No 1
0 icmp 1 1 0
1 tcp 3 1 2
2 udp 2 1 1
推荐阅读
- selenium - 如何从 1 个节点和 1 个端口使用最多 10 个 chrome 实例
- prerender - 使用 viperHTML 进行服务器端渲染
- android - 如何在系统栏下使用视图绘制布局?
- rancher - 在 Rancher 上注册克隆的虚拟机
- php - Simple_html_dom 获取 data-src 中的图像 url
- php - Codeigniter:消息:试图获取非对象文件名的属性:edit/edit_nilai.php 行号:9
- css - 当包裹在 kendoGridDetailTemplate 内时,Kendo 对话框角 2+ 出现在 kendo 网格内
- android - 如何在片段 recyclerView 中使用搜索栏
- sql - 在 SQL 查询中删除重复的 *after* ordering
- python - 如何修复 SSL 问题 SSL_CTX_use_certificate:ca md 在 Python Zeep 上太弱