Databricks中用pandas实现两列唯一值交叉计数生成新DataFrame
Databricks环境下pandas实现两列共现次数统计
直接使用pandas内置的交叉表函数即可完成需求,无需额外依赖,Databricks运行环境默认预装pandas,可直接执行以下操作:
- 构造原始DataFrame
import pandas as pd # 写入原始A、B列数据 source_df = pd.DataFrame({ "A": ["AAA", "CCC", "AAA", "FFF", "RRR", "CCC"], "B": ["BBB", "DDD", "EEE", "DDD", "WWW", "BBB"] })
- 生成共现统计矩阵
使用pd.crosstab()函数,会自动提取A列唯一值作为行索引、B列唯一值作为列名,统计每一组A-B值对的出现次数,未出现的组合自动填充为0,完全匹配目标输出格式:
result_df = pd.crosstab(index=source_df["A"], columns=source_df["B"])
- 查看结果
在Databricks中可直接使用原生display()函数渲染表格,也可以用print()打印结果,最终输出和预期格式完全一致:
BBB DDD EEE WWW A AAA 1 0 1 0 CCC 1 1 0 0 FFF 0 1 0 0 RRR 0 0 0 1
补充提示:如果原始数据中存在空值需要纳入统计,可在
pd.crosstab()中传入参数dropna=False,避免空值被默认过滤。
内容的提问来源于stack exchange,提问作者harshith
相关产品推荐
相关产品推荐

