首页 > 解决方案 > 无法在机器学习中创建新功能

问题描述

我有一个数据集。我正在使用 pandas 数据框并将其命名df。数据集有 50,000 行 - 这是前 5 行:。

Name_Restaurant              cuisines_available             Average cost

Food Heart                     Japnese, chinese                60$
Spice n Hungary             Indian, American, mexican          42$
kfc, Lukestreet                 Thai, Japnese                  29$
Brown bread shop                American                       11$
kfc, Hypert mall               Thai, Japnese                   40$
  1. 我想创建包含 no 的列。可用的美食我正在尝试代码

    df['no._of_cuisines_available']=df['cuisines_available'].str.len()
    

    然后,而不是显示没有。美食,它显示了字符的总和。例如 - 对于第一行,o/p 应该是 2 ,但它显示的是 17。

  2. 我需要一个新列,其中包含每家餐厅的商店数量。示例 - 这里 kfc 有 2 家商店 kfc、lukestreet 和 kfc、hypert mall。我完全不知道如何编码。

标签: pandas

解决方案


一世)

df['cuisines_available'].str.split(',').apply(len)

ii)

df['Name_Restaurant'].str.split(',', expand=True).melt().['value'].str.strip().value_counts()

ii) 的作用:在 ',' 处拆分列,并将由此生成的所有字符串存储在单个列中。然后使用 melt 制作一大列,去除空格等并计算单个条目。


推荐阅读