You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas对两列字符串数据重塑并统计交叉计数结果

完整实现代码

import pandas as pd

# 构造原始数据集
data = {
    "fruits": ["orange, apple, banana", "orange, apple, banana", 
               "apple, banana", "orange, apple, banana", "others"],
    "places": ["New York, London, Boston", "New York, Manchester", 
               "Tokyo", "Hong Kong, Boston", "London"],
}
df = pd.DataFrame(data)

# 拆分逗号分隔值并展开为多行
df_exploded = df.assign(
    fruits = df['fruits'].str.split(',\s*'),
    places = df['places'].str.split(',\s*')
).explode('fruits').explode('places')

# 生成交叉计数表
res = pd.crosstab(df_exploded['fruits'], df_exploded['places'])
print(res)

实现逻辑说明

  • 先对fruits和places两列执行字符串拆分,用正则,\s*匹配逗号加任意数量空格的分隔符,避免拆分后的值出现前导空格
  • 两次调用explode方法,将两列的列表结构分别展开为独立行,让每行仅保留一组「水果-地点」的对应关系
  • 直接使用pd.crosstab对两个维度做交叉统计,输出结果的行索引为水果名称、列索引为地点名称、值为二者的共现次数,和预期输出完全一致

内容的提问来源于stack exchange,提问作者codedancer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:15:03