python - 如何在 pandas DataFrame 中显示元素的频率?
问题描述
我有一个包含以下列(具有现有数字索引)的 pandas DataFrame:
points | variety
----------------
1 97 | Chardonnay
17 67 | Cabernet Sauvignon
12 70 | Cabernet Sauvignon
8 97 | Chardonnay
我想将其转换为一个新的 DataFrame:
points
作为新索引的列- 列中的每个唯一条目对应一
variety
列 points
新品种命名列中的值包含原始表中原始值的每个品种出现的频率。
例如从上面的例子:
Chardonnay | Cabernet Sauvignon
-------------------------------
97 2 | 0
67 0 | 1
70 0 | 1
请注意,原始索引与输出无关。这是一个显示更完整示例的图像:Pandas DataFrame Snapshot。
解决方案
您可以Pandas.crosstab
为此使用:
pd.crosstab(index=df.points, columns=df.variety)
[出去]
variety Cabernet Sauvignon Chardonnay
points
67 1 0
70 1 0
97 0 2
推荐阅读
- php - PHP PDO mysql 查询同时使用 column = '$var' 和 column IS NULL
- c# - 在 Angular 中导入 excel 文件并将数据传递到 ASP.NET Core API 项目中
- python - python中的浮点数列表
- java - 自动确定在 Classpath 和 Modulepath 上放置什么?
- airflow - 运行气流initdb时无法导入名称'IncorrectSchemaTypeError
- macos - VoiceProcessingIO 音频单元将意外的输入流添加到内置输出设备 (macOS)
- node.js - 如何使用 JSDoc 声明 mongodb 集合
- rxjs - 使用 RxJS 延迟一批 observables
- reactjs - React - 简单的 ul li 过滤器
- javascript - JS 函数翻倍