[英]How To Convert A Dataframe Column Into 2D Array?
I've the below dataset:我有以下数据集:
My objective is to create a 2D array of the column 'Products' for this dataset.我的目标是为此数据集创建列“产品”的二维数组。
Now, if I do the following code:现在,如果我执行以下代码:
prodarr = Order_Details[['Product']].to_numpy()
It returns me the result as follows:它返回给我的结果如下:
[['PRODUCT_75'],
['PRODUCT_75'],
['PRODUCT_63'],
['PRODUCT_63'],
['PRODUCT_34,PRODUCT_86,PRODUCT_57,PRODUCT_89'],
['PRODUCT_34,PRODUCT_66,PRODUCT_58,PRODUCT_83'],
['PRODUCT_75'],
['PRODUCT_63,PRODUCT_90,PRODUCT_27,PRODUCT_5'],
['PRODUCT_26'],
['PRODUCT_63'],
['PRODUCT_63'],
['PRODUCT_5,PRODUCT_34'],
['PRODUCT_84,PRODUCT_27'],
['PRODUCT_27'], ...]
Now, this is an undesirable situation for me, as I wanted all the distinct products as different elements in a given row.现在,这对我来说是一个不受欢迎的情况,因为我希望所有不同的产品作为给定行中的不同元素。 What I mean is that the output should instead be like this:
我的意思是输出应该是这样的:
[['PRODUCT_75'],['PRODUCT_63'],['PRODUCT_63'],['PRODUCT_34','PRODUCT_86','PRODUCT_57','PRODUCT_89'], ['PRODUCT_34','PRODUCT_66','PRODUCT_58','PRODUCT_83'], ['PRODUCT_75'], ['PRODUCT_63','PRODUCT_90','PRODUCT_27','PRODUCT_5'], ...]
This means that it is that on each row there are multiple columns of strings and not just one.这意味着在每一行上都有多列字符串,而不仅仅是一列。
How should I approach this conundrum?我应该如何解决这个难题? Will have to segregate the strings based on commas and make use of df.iterrows ?
是否必须根据逗号分隔字符串并使用df.iterrows ?
here is one way to do it这是一种方法
df = df['product'].str.split(',', expand=True)
0 1 2 3
0 PRODUCT_75 None None None
1 PRODUCT_75 None None None
2 PRODUCT_63 None None None
3 PRODUCT_63 None None None
4 PRODUCT_34 PRODUCT_86 PRODUCT_57 PRODUCT_89
5 PRODUCT_34 PRODUCT_66 PRODUCT_58 PRODUCT_83
6 PRODUCT_75 None None None
7 PRODUCT_63 PRODUCT_90 PRODUCT_27 PRODUCT_5
8 PRODUCT_26 None None None
9 PRODUCT_63 None None None
10 PRODUCT_63 None None None
11 PRODUCT_5 PRODUCT_34 None None
12 PRODUCT_84 PRODUCT_27 None None
13 PRODUCT_27 None None None
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.