Python 将嵌套列表转换为dataframe,如果缺少值,则为0
我想转换:Python 将嵌套列表转换为dataframe,如果缺少值,则为0,python,list,dataframe,Python,List,Dataframe,我想转换: ['S1',S2',S6'],['S1',S2',S3',S4',S5'],['S1',S2',S5'],['S1',S2',S4',S5',S5']进入一个数据框,标签为'S1','S2','S3','S4','S5',S6'和 如果未包含该值,则应将其替换为0,否则为1 'S1','S2','S3','S4','S5','S6' 1 | 1 1 0 0 0 1 2 | 1 1 1 1 1 0 3 | 1
['S1',S2',S6'],['S1',S2',S3',S4',S5'],['S1',S2',S5'],['S1',S2',S4',S5',S5']
进入一个数据框,标签为'S1','S2','S3','S4','S5',S6'
和
如果未包含该值,则应将其替换为0,否则为1
'S1','S2','S3','S4','S5','S6'
1 | 1 1 0 0 0 1
2 | 1 1 1 1 1 0
3 | 1 1 0 0 1 0
4 | 1 1 0 1 1 0
此命令不够好:
data = pd.DataFrame(res, columns = ['S1','S2','S3','S4','S5'])
S1 S2 S3 S4 S5
0 S1 S2 S6 None None
1 S1 S2 S3 S4 S5
2 S1 S2 S5 None None
3 S1 S2 S4 S5 None
4 S1 S2 S4 S5 None
首先,将列表
['S1',S2',S6']
转换为dicts{'S1':1',S2':1',S6':1}
。我们可以从中构建一个数据框架,熊猫会正确地将所有东西放在正确的位置。缺少的任何值都将被指定为NaN(并且它们的列将被设置为浮点数据类型)。为了解决这个问题,我们将用零填充缺少的值,然后将所有内容转换回整数。因此,假设您的数据位于数据中
:
pd.DataFrame([{k:1 for k in l} for l in data]).fillna(0).astype(int)
编辑:如果您不希望列的顺序看起来是随机的,您可以像在尝试中那样传递columns
关键字参数