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

如何在Pandas中完整访问单元格字符串值及分类列单个分类?

问题1:Pandas中完整获取单元格字符串,避免逐个读字符

如果访问单元格时只能拿到单个字符,大概率是两种情况:要么你误把字符串当成列表来做双层索引,要么单元格本身存的就是字符列表。解决办法:

  • 直接拿完整值:如果单元格是字符串类型,df['列名'].iloc[行号] 或者 df['列名'][行号] 就能拿到完整字符串,别再加第二层索引(比如[0][1]这种操作会取字符串的第2个字符)。
  • 检查并修复类型:用type(df['列名'].iloc[0])查看类型,如果是list而非str,说明数据读入时被拆成了字符列表,转成字符串即可:
    df['列名'] = df['列名'].apply(''.join)
    
问题2:从Categories列提取完整分类值

你用print(df["categories"][0][1])输出单引号,是因为df["categories"][0]是个带分类的字符串(比如格式像"'Backend', 'Frontend'"),不是列表。此时[1]取的是字符串的第2个字符(就是单引号),不是你要的分类元素。按下面步骤处理:

  1. 把字符串转成分类列表:先清掉冗余的引号、空格,再按逗号拆分。代码示例:
    # 适配类似 "'Backend', 'Frontend'" 的单元格格式
    df['categories'] = df['categories'].apply(
        lambda x: [item.strip().strip("'") for item in x.split(',')]
    )
    
    如果需要保留分类前后的空格,去掉.strip()即可。
  2. 提取分类:处理完之后,df["categories"][0][1]就能拿到Backend(或者你要的' Backend ')。
  3. 提前规避:如果是从CSV读的数据,读的时候直接处理格式更高效:
    import pandas as pd
    df = pd.read_csv(
        '你的文件.csv',
        converters={'categories': lambda x: [item.strip().strip("'") for item in x.split(',')]}
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:55:16