我写了一个网络刮板,从产品表中提取信息并构建一个数据框。数据表有一个Description列,其中包含一个逗号分隔的描述产品的属性字符串。我想在dataframe中为每个惟一的属性创建一个列,并用属性的子字符串填充该列中的行。示例df如下。在
PRODUCTS DATE DESCRIPTION
Product A 2016-9-12 Steel, Red, High Hardness
Product B 2016-9-11 Blue, Lightweight, Steel
Product C 2016-9-12 Red
我想第一步是把描述分成一个列表。在
^{pr2}$我想要的输出如下表所示。列名不是特别重要。在
PRODUCTS DATE STEEL_COL RED_COL HIGH HARDNESS_COL BLUE COL LIGHTWEIGHT_COL
Product A 2016-9-12 Steel Red High Hardness
Product B 2016-9-11 Steel Blue Lightweight
Product C 2016-9-12 Red
我相信可以使用一个轴来设置列,但是我不确定在建立这些列之后,最适合python的方式来填充这些列。感谢任何帮助。在
非常感谢你的回答。我选择@MaxU的回答是正确的,因为它看起来更灵活一些,但是@piRSquared的结果非常相似,甚至可以被认为是更具Python式的方法。我测试了两个版本,都做了我需要的。谢谢!在
这是我从一个我已经在研究的问题中延伸出来的解决方案。在
我还将@MaxU、@piRSquared和我的解决方案放在一个有11592行的pandas数据框和一个包含2681个唯一值的列表的列上。显然,列名在测试数据帧中是不同的,但我保持了它们与问题中的相同。在
下面是每种方法的基准
^{pr2}$1个回路,最好3个:每个回路1.14秒
1个回路,最好每回路3:612ms
1个回路,最好为3:62.7 ms/回路
我猜聚合和取消堆叠比pivot_table()或警察局的傻瓜(). 在
您可以建立稀疏矩阵:
使用^{}
相关问题 更多 >
编程相关推荐