【发布时间】:2017-10-09 07:16:40
【问题描述】:
给定一系列未知大小的内部列表:
import pandas as pd
sr = pd.Series([['a', 'b', 'c', 'b'], ['a', 'a', 'd'], ['b']])
[出]:
0 [a, b, c, b]
1 [a, a, d]
2 [b]
目标是使用内部列表中的值来创建列并使用每行中的项目数填充其值,即
a b c d
0 1.0 2.0 1.0 NaN
1 2.0 NaN NaN 1.0
2 NaN 1.0 NaN NaN
我尝试通过遍历每一行并将它们转换为 Counter 对象并使用计数器字典列表重新创建数据框来实现上述目的:
>>> from collections import Counter
>>> pd.DataFrame([dict(Counter(row)) for row in pd.Series([['a', 'b', 'c', 'b'], ['a', 'a', 'd'], ['b']])])
有没有更简单的方法来做到这一点?也许用.pivot()?
【问题讨论】:
标签: python pandas counter series nested-lists