【问题标题】:Pandas: convert type of columnPandas:转换列的类型
【发布时间】:2023-03-23 18:45:01
【问题描述】:

我有一个带列的数据框

                                         category  
0          [Рубрики/Hi-Tech/Интернет/Универсальное/ ]  
1   [/Рубрики/Бизнес/Недвижимость/Базы недвижимост...  
2   [] 
3   [/Рубрики/Бизнес/Недвижимость/Базы недвижимост...  
4          [Рубрики/Hi-Tech/Интернет/Универсальное/ ]  
5   [] 
6          [Рубрики/Hi-Tech/Интернет/Универсальное/ ]  
7   [/Рубрики/Бизнес/Недвижимость/Базы недвижимост...  
8          [Рубрики/Hi-Tech/Интернет/Универсальное/ ]  
9   [/Рубрики/Бизнес/Недвижимость/Базы недвижимост...  
10         [Рубрики/Hi-Tech/Интернет/Универсальное/ ]  
11  [/Рубрики/Бизнес/Недвижимость/Базы недвижимост...  
12  []  
13  [/Рубрики/Бизнес/Недвижимость/Базы недвижимост...  
14         [Рубрики/Hi-Tech/Интернет/Универсальное/ ] 

列中有列表。我需要从每个列表中获取第一个字符串,但是有些列表是空的,当我尝试使用时

df.category.iloc[0]

我明白了

ValueError:值的长度与索引的长度不匹配

如何修复该错误并获取字符串而不是列表?

【问题讨论】:

    标签: python string list pandas dataframe


    【解决方案1】:

    我觉得你可以用indexing with str:

    df.category = df.category.str[0]  
    

    示例:

    df = pd.DataFrame({'category': [['aw','be'],[],['tr','yt','uy'],['tre']]})
    print (df)
           category
    0      [aw, be]
    1            []
    2  [tr, yt, uy]
    3         [tre]
    
    df.category = df.category.str[0]  
    print (df)
      category
    0       aw
    1      NaN
    2       tr
    3      tre
    

    如果需要用空字符串替换NaN

    df.category = df.category.str[0].fillna('')
    print (df)
      category
    0       aw
    1         
    2       tr
    3      tre
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-03
      • 2012-07-24
      • 2017-01-29
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      相关资源
      最近更新 更多