列值到单字符串观察

时间:2019-07-01 09:53:19

标签: python pandas pandas-groupby

尝试按Product变量分组并将列中的值连接为字符串

df:

prefs = {'download.default_directory' :'/Users/nrpss/Downloads',
        "download.prompt_for_download": False,
        "download.directory_upgrade": True,
        "safebrowsing_for_trusted_sources_enabled": False,
        "safebrowsing.enabled": False
         }

options.add_experimental_option('prefs', prefs)

我要创建以下形式的DF:

Product    Value

 TV         0.1
 TV         0.2
 TV         0.15
 DVD        0.001
 DVD        0.01
 Netflix    0.1
 Netflix    0.2
 Netflix    0.25

我认为我应该可以使用类似的东西:

Product    Value
 TV        (0.1, 0.2, 0.15)
 DVD       (0.001, 0.01)
 Netflix   (0.1, 0.2, 0.25) 

但是这似乎不起作用。我尝试了 map()无济于事。我想我可能使这个复杂化了,但似乎找不到解决方案。

1 个答案:

答案 0 :(得分:2)

您几乎完全正确,只需应用lambda即可:

df.groupby('Product')['Value'].apply(lambda x: ",".join(map(str, x)))

您将获得理想的结果。

如果打开/关闭括号很重要,只需添加:

df['Value'].apply(lambda x: f"({x})")