下面是我用熊猫创建的数据框
╔════════════════════════╦══════════╗
║ Column A ║ Column B ║
╠════════════════════════╬══════════╣
║ / ║ 5.34 ║
║ new-shirts ║ 6.78 ║
║ new-pants ║ 10.11 ║
║ used-hats ║ 1.56 ║
║ used-shirts ║ 3.78 ║
║ brand-new-watches/gold ║ 4.21 ║
║ customer-service ║ 0.29 ║
║ holiday-blowout-sale ║ 12.45 ║
║ used-pants/corduroy ║ 2.98 ║
║ special-discounts ║ 6.99 ║
║ contact-us ║ 1.67 ║
╚════════════════════════╩══════════╝
我想将字符串与“列A”中的新行类似的行(“Home”将是“/”),其中任何带有“new”的行都将变成“new”,任何带有“used”的行都将变成“used”,任何带有“service”的行都将变成“service”,其他所有行都将被推到“Other”),并在“列B”中找到这些值的平均值如下图所示。我将如何使用Python和Pandas做到这一点
╔══════════╦══════════╗
║ Column A ║ Column B ║
╠══════════╬══════════╣
║ Home ║ 5.34 ║
║ New ║ 7.03 ║
║ Used ║ 2.77 ║
║ Service ║ 0.29 ║
║ Other ║ 7.04 ║
╚══════════╩══════════╝
此外,是否也可以将“客户服务”和“联系我们”等特定页面合并到新行“服务”中,而不将“联系我们”计入“其他”中
谢谢大家!
编辑:
@Erfan-您的解决方案在初始数据帧的显示方式上非常有效,但我意识到它缺少相关数据。如果您的解决方案看起来像这样,而我正试图达到相同的结果,您的解决方案会发生什么变化
╔═════════════════════════════════╦══════════╗
║ Column A ║ Column B ║
╠═════════════════════════════════╬══════════╣
║ / ║ 5.34 ║
║ /new-shirts/ ║ 6.78 ║
║ /new-pants/ ║ 10.11 ║
║ /used-hats/ ║ 1.56 ║
║ /used-shirts/ ║ 3.78 ║
║ /brand-new-watches/gold/ ║ 4.21 ║
║ /customer-service/ ║ 0.29 ║
║ /holiday-blowout-sale/december/ ║ 12.45 ║
║ /used-pants/corduroy/ ║ 2.98 ║
║ /special-discounts/ ║ 6.99 ║
║ /contact-us/ ║ 1.67 ║
╚═════════════════════════════════╩══════════╝
我们可以定义要分类的单词,然后使用
Series.str.extract
从字符串中提取这些类别然后我们使用
GroupBy.sum
获得每个类别的总和:相关问题 更多 >
编程相关推荐