最好将此问题描述为一个示例(与大多数情况一样)。
我有以下示例列表:
test = ['a','a','b','b','c','b']
我想获得一个带有输入列表长度的pandas数组列表(在本例中为6),其中每个数组的长度都是' test'在这种情况下3(' a',' b'' c')它包含零和单个1对应于唯一值的值(这里的顺序显然很重要,所以如果对唯一值进行排序会更好,或者更好的顺序将是第一次出现的值,在示例中,两个顺序重合)输入列表的每个元素都包含。
对于上面的示例,输出将是一个如下所示的数组列表:
(1,0,0)
(1,0,0)
(0,1,0)
(0,1,0)
(0,0,1)
(0,1,0)
附加示例:
test = ['a', 'g', 'b']
(1,0,0)
(0,1,0)
(0,0,1)
如果是任意的话,我还需要输出唯一值对应的顺序。最好是在列表中首次遇到唯一元素。在这种情况下,它是''''' b'。
谢谢
答案 0 :(得分:3)
Pandas有一个内置函数[2018-02-05T09:04:14.675+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=26 _ThreadName=Thread-8] [timeMillis: 1517821454675] [levelValue: 800] [[
******************]]
[2018-02-05T09:04:14.675+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=26 _ThreadName=Thread-8] [timeMillis: 1517821454675] [levelValue: 800] [[
file:/home/ubuntu/glassfish4/glassfish/domains/domain1/applications/BookStore/WEB-INF/lib/jackson-databind-2.6.7.1.jar]]
[2018-02-05T09:04:14.675+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=26 _ThreadName=Thread-8] [timeMillis: 1517821454675] [levelValue: 800] [[
file:/home/ubuntu/glassfish4/glassfish/domains/domain1/lib/aws-java-sdk-1.11.268.jar]]
[2018-02-05T09:04:14.675+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=26 _ThreadName=Thread-8] [timeMillis: 1517821454675] [levelValue: 800] [[
file:/home/ubuntu/glassfish4/glassfish/domains/domain1/lib/aws-java-sdk-1.11.268.jar]]
[2018-02-05T09:04:14.678+0000] [glassfish 4.1] [INFO] [] [] [tid: _ThreadID=26 _ThreadName=Thread-8] [timeMillis: 1517821454678] [levelValue: 800] [[
DEBUG: setDebug: JavaMail version 1.5.2]]
,可以满足您的目的:
get_dummies
如果由于某种原因,您确实需要>>> test = ['a','a','b','b','c','b']
>>> import pandas as pd
>>> pd.get_dummies(test)
a b c
0 1 0 0
1 1 0 0
2 0 1 0
3 0 1 0
4 0 0 1
5 0 1 0
个对象的列表,您可以随时:
numpy.ndarray