- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有如下所示的总 Pandas 系列列表。我有每个列表中可以包含的完整值列表。
superset= ['a1','b1'...,'z1']
panda series ps = ['a1','b1']
['c1']
['d1']
现在我想将它们转换成下面的形式。
columns : a1 b1 c1 d1 e1 ... z1
1 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
最佳答案
使用MultiLabelBinarizer
的解决方案:
s = pd.Series([['a1','b1'], ['c1'], ['d1']])
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
df = pd.DataFrame(mlb.fit_transform(s),columns=mlb.classes_, index=s.index)
纯 Pandas 解决方案 get_dummies
并聚合max
:
df = pd.get_dummies(pd.DataFrame(s.values.tolist()), prefix='', prefix_sep='').max(axis=1, level=0)
print (df)
a1 b1 c1 d1
0 1 1 0 0
1 0 0 1 0
2 0 0 0 1
时间:
#Generated 10 paragraphs, 224 words, 1710 bytes of Lorem Ipsum
#https://www.lipsum.com/
L = [['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit'], ['sed', 'mollis', 'ligula', 'a', 'pellentesque', 'commodo'], ['morbi', 'convallis', 'ante', 'dignissim', 'leo', 'imperdiet', 'vitae', 'molestie', 'nulla', 'euismod'], ['ut', 'consequat', 'quam', 'ut', 'mauris', 'dictum', 'consequat'], ['pellentesque', 'id', 'odio', 'congue', 'vulputate', 'tortor', 'in', 'interdum', 'ex'], ['nam', 'cursus', 'lectus', 'vel', 'convallis', 'facilisis'], ['vivamus', 'sed', 'dui', 'pulvinar', 'dapibus', 'quam', 'in', 'posuere', 'velit'], ['donec', 'vitae', 'diam', 'at', 'mauris', 'eleifend', 'eleifend'], ['vestibulum', 'bibendum', 'erat', 'eget', 'massa', 'varius', 'accumsan'], ['donec', 'consequat', 'nibh', 'at', 'risus', 'elementum', 'quis', 'volutpat', 'purus', 'dapibus'], ['nulla', 'ornare', 'dolor', 'id', 'neque', 'malesuada', 'mattis'], ['nunc', 'a', 'lacus', 'vestibulum', 'laoreet', 'neque', 'a', 'maximus', 'velit'], ['etiam', 'nec', 'metus', 'eu', 'ligula', 'bibendum', 'malesuada'], ['morbi', 'vestibulum', 'ante', 'ac', 'nulla', 'efficitur', 'dignissim'], ['curabitur', 'maximus', 'velit', 'at', 'euismod', 'pellentesque'], ['nunc', 'non', 'turpis', 'pellentesque', 'aliquam', 'lectus', 'at', 'mollis', 'lectus'], ['donec', 'auctor', 'nunc', 'id', 'vestibulum', 'efficitur'], ['duis', 'volutpat', 'mi', 'vel', 'sem', 'cursus', 'commodo'], ['fusce', 'condimentum', 'eros', 'id', 'elementum', 'facilisis'], ['sed', 'lacinia', 'nunc', 'ac', 'risus', 'dignissim', 'condimentum'], ['maecenas', 'sit', 'amet', 'sem', 'vitae', 'ex', 'rhoncus', 'sodales'], ['nunc', 'ultrices', 'ligula', 'porttitor', 'bibendum', 'eleifend'], ['aenean', 'vitae', 'mauris', 'gravida', 'suscipit', 'ex', 'sed', 'molestie', 'tortor'], ['morbi', 'sed', 'ex', 'placerat', 'hendrerit', 'ipsum', 'id', 'pellentesque', 'metus'], ['praesent', 'interdum', 'orci', 'eu', 'mattis', 'efficitur'], ['cras', 'porttitor', 'ex', 'sit', 'amet', 'sollicitudin', 'suscipit'], ['suspendisse', 'non', 'dolor', 'et', 'nisi', 'aliquet', 'sagittis'], ['sed', 'finibus', 'turpis', 'sit', 'amet', 'aliquet', 'maximus'], ['nulla', 'ut', 'dolor', 'sed', 'odio', 'porta', 'porta'], ['morbi', 'dignissim', 'sapien', 'at', 'est', 'varius', 'lacinia'], ['quisque', 'elementum', 'sem', 'vel', 'purus', 'pulvinar', 'at', 'congue', 'lorem', 'fermentum'], ['curabitur', 'condimentum', 'libero', 'sed', 'mauris', 'porta', 'varius'], ['vivamus', 'vitae', 'nunc', 'quis', 'risus', 'cursus', 'luctus']]
s = pd.Series(L)
s = pd.concat([s] * 1000, ignore_index=True)
<小时/>
In [140]: %%timeit
...: pd.get_dummies(pd.DataFrame(s.values.tolist()), prefix='', prefix_sep='').max(axis=1, level=0)
...:
1 loop, best of 3: 282 ms per loop
In [141]: %%timeit
...: mlb = MultiLabelBinarizer()
...: pd.DataFrame(mlb.fit_transform(s),columns=mlb.classes_, index=s.index)
...:
10 loops, best of 3: 86.2 ms per loop
In [142]: %%timeit
...: df = pd.get_dummies(s.apply(pd.Series))
...: df = df.rename(columns={k: k.split('_')[1] for k in df}).sort_index(1)
...:
1 loop, best of 3: 5.97 s per loop
关于python - OHE 的一系列 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48478711/
我想使用 R 预定义这样的列表 DATA<-list( list(list(),list(),list()), list(list(),list(),list()), list(list(),l
如何将一个列表添加到另一个列表,返回一个列表的列表? foo :: [a] -> [a] -> [[a]] 例如,我想要的结果是: foo [1,2] [3,4] 将是 [[1,2], [3,4]]。
我还没有在这里找到类似问题的解决方案,所以我会寻求你的帮助。 有 2 个列表,其中之一是列表列表: categories = ['APPLE', 'ORANGE', 'BANANA'] test_re
这个问题不同于Converting list of lists / nested lists to list of lists without nesting (这会产生一组非常具体的响应,但无法解决
原始列表转换为 List正好。为什么原始列表的列表不能转换为 List 的列表? { // works List raw = null; List wild = raw; } {
在下面的代码中,get()被调用并将其结果分配给类型为 List> 的变量. get()返回 List>并在类型参数为 T 的实例上调用设置为 ? ,所以它应该适合。 import java.util
原始列表转换为 List正好。为什么原始列表的列表不能转换为 List 的列表? { // works List raw = null; List wild = raw; } {
在insufficiently-polymorphic 作者说: def foo[A](fst: List[A], snd: List[A]): List[A] There are fewer way
我有下面的代码有效。 class ListManipulate(val list: List, val blockCount: Int) { val result: MutableList>
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 5 年前。 Improve this ques
在 scala (2.9) 中转换列表列表的最佳方法是什么? 我有一个 list : List[List[A]] 我想转换成 List[A] 如何递归地实现这一点?或者还有其他更好的办法吗? 最佳答案
我编写了这个函数来确定给定元素是否存储在元组列表的列表中,但目前它只搜索第一个列表。我将如何搜索其余列表? fun findItem (name : command, ((x,y)::firstlis
我创建了一个类名 objectA,它有 4 个变量:约会时间;字符串文本;变量 1,变量 2 我需要创建一个 ObjectA() 列表。然后首先按时间对它们进行分组,其次按 var1,然后按 var2
我有一套说法 char={'J','A'} 和列表的列表 content = [[1,'J', 2], [2, 'K', 3], [2, 'A', 3], [3,'A', 9], [5, 'J', 9
我有以下列表 List >>> titles = new ArrayList >>> ();我想访问它的元素,但我不知道该怎么做.. 该列表有 1 个元素,它又包含 3 个元素,这 3 个元素中的
转换 List[List[Long]] 的最佳方法是什么?到 List[List[Int]]在斯卡拉? 例如,给定以下类型列表 List[List[Long]] val l: List[List[Lo
我有一个来自 Filereader (String) 的 List-List,如何将其转换为 List-List (Double):我必须返回一个包含 line-Array 的第一个 Values 的
我收集了List> 。我需要将其转换为List> 。这是我尝试过的, List> dataOne = GetDataOne(); var dataTwo = dataOne.Select(x => x
这个问题在这里已经有了答案: Cannot convert from List to List> (3 个答案) 关闭 7 年前。 我没有得到这段代码以任何方式编译: List a = new Ar
这个问题在这里已经有了答案: Cannot convert from List to List> (3 个答案) 关闭 7 年前。 我没有得到这段代码以任何方式编译: List a = new Ar
我是一名优秀的程序员,十分优秀!