【问题标题】:Convert a list's part into a Pandas Dataframe将列表的部分转换为 Pandas 数据框
【发布时间】:2020-05-22 04:46:31
【问题描述】:

我有一个包含值的列表“list_of_categories_train”:

0                                      [Men, Tops, T-shirts]
1          [Electronics, Computers & Tablets, Components ...
2                            [Women, Tops & Blouses, Blouse]
3                   [Home, Home Décor, Home Décor Accents]
4                                [Women, Jewelry, Necklaces]
                                 ...                        
1048570                                 [Kids, Other, Other]
1048571           [Other, Daily & Travel items, Health Care]
1048572    [Women, Athletic Apparel, Pants, Tights, Leggi...
1048573                       [Men, Shoes, Fashion Sneakers]
1048574                    [Kids, Toys, Dolls & Accessories]
Name: category_name, Length: 1048575, dtype: object

我需要选择每个列表的第一个单词并将其放入数据框中。但这需要几个小时。最快的方法是什么? 我的代码是:

i=0
while i <= len(list_of_categories_train)  :  
    data_train['noOfCategories']= list_of_categories_train[i][0]
    i=i+1

【问题讨论】:

    标签: python pandas list numpy loops


    【解决方案1】:

    假设list_of_categories_train是你的系列,如果系列中的每个元素都是一个列表,你可以试试:

    data_train['noOfCategories'] = list_of_categories_train.apply(lambda x: x[0])
    

    【讨论】:

      【解决方案2】:

      用途:

      data_train['noOfCategories'] = [x[0] for x in list_of_categories_train]
      

      更慢:

      data_train['noOfCategories'] = list_of_categories_train.str[0]
      

      【讨论】:

      • 通过此代码,我得到第一个字母,我需要第一个单词,即 Men,Electronics ...
      • @MuhammadAffan - print (type(data_train.loc[0, 'category_name'])) 是什么?
      • @MuhammadAffan - 使用data_train['noOfCategories'] = [x[0] for x in list_of_categories_train]
      • 看来apply 对 OP 很有效,但对于非常大的数据集,第一个建议可能更快。
      猜你喜欢
      • 2017-06-22
      • 2021-03-22
      • 2020-09-02
      • 2021-01-22
      • 2021-02-09
      • 2018-03-25
      • 2023-03-21
      • 1970-01-01
      • 2018-05-17
      相关资源
      最近更新 更多