Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将嵌套列表转换为dataframe,如果缺少值,则为0_Python_List_Dataframe - Fatal编程技术网

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
关键字参数