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

Pandas DataFrame单元格含列表时常规操作失效的解决方法咨询

Pandas DataFrame单元格含列表时常规操作失效的解决方法咨询

嗨,我最近在处理Pandas DataFrame时碰到了一个棘手的问题,想请教下各位有没有更简洁的解决思路!

情况是这样的:我有一个DataFrame(是更大数据集的一部分),记录了每个人旅行时去过的州,其中states_visited列里有的单元格是列表,有的是单个字符串。示例代码和数据结构如下:

import pandas as pd
df = pd.DataFrame({'states_visited': [['NY', 'CA'], 'CA', 'CA']}, index = ['John', 'Mary', 'Joe'])

对应的DataFrame展示:

states_visited
John    [NY, CA]
Mary    CA
Joe     CA

问题来了:

  • 当我想用常规方法df['states_visited'].unique()获取唯一的州访问组合(也就是我期望得到[['NY', 'CA'], 'CA'],想知道哪些州是一起去的,哪些是单独去的)时,直接报错:TypeError: unhashable type: 'list',因为列表是不可哈希类型,unique()方法没办法处理。
  • 同样,我想判断谁去过NY时,用df['states_visited'].str.contains('NY')也不行,John那行会返回NaN,因为str系列方法只对字符串类型的单元格生效,列表类型的单元格处理不了。

目前我只能用比较繁琐的方式来实现判断去过NY的用户,比如:

df['states_visited'].explode()
                 .dropna()
                 .str.contains('NY')
                 .groupby(level=0).any()

想请教下各位,有没有更高效、简洁的方法来处理这种单元格包含列表的DataFrame?比如快速获取唯一的列表/字符串组合,或者直接判断某个元素是否存在于单元格的列表中?

备注:内容来源于stack exchange,提问作者Saeed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 09:43:13