首页 > 解决方案 > 带有复选标记的 CSV 中的 Pandas 数据透视表

问题描述

我有一个看起来像这样的 CSV 文件

数据源 目的地 描述
一种 1 说明
2 B 描述
C 3 C 描述
一种 3 说明

我正在寻找一个看起来像这样的数据透视表

描述 数据源 1 2 3
说明 一种 X X
B 描述 X
C 描述 C X

到目前为止我得到的最接近的是这个

table = pd.pivot_table(df, index='data_source', columns='destination', values=['data_source'], aggfunc='first')

我尝试使用 ['description', 'data_source'] 作为索引来获取 description 和 data_source 行,但我最终得到一个 0 列表。我也不知道传递给 aggfunc 以在有价值的单元格中输出“x”的数据类型。

我是 Pandas 的新手,我还没有一个好的心智模型,所以感谢任何帮助。

标签: pythonpandaspivot-table

解决方案


你正在寻找pd.crosstab

out = pd.crosstab([df['data_source'],df['description']], df['destination']).reset_index()
Out[101]: 
destination data_source   description  1  2  3
0                     A  Adescription  1  0  1
1                     B  Bdescription  0  1  0
2                     C  Cdescription  0  0  1

推荐阅读