如何在Python中使用不同长度的列表列表创建数据框?

海伦娜·帕兰祖拉·罗德里格斯

我正在使用PySpark Python3-Spark 2.1.0,并且具有差异列表的列表,例如:

lista_archivos = [[['FILE','123.xml'],['NAME','ANA'],['SURNAME','LÓPEZ'],
['BIRTHDATE','05-05-2000'],['NATIONALITY','ESP']], [['FILE','458.xml'],
['NAME','JUAN'],['SURNAME','PÉREZ'],['NATIONALITY','ESP']], [['FILE','789.xml'],
['NAME','PEDRO'],['SURNAME','CASTRO'],['BIRTHDATE','07-07-2007'],['NATIONALITY','ESP']]]

该列表具有不同长度的元素。所以现在,我想从此列表创建一个DataFrame,其中的列是第一个属性(即'FILE,NAME,SURNAME,BIRTHDATE,NATIONALITY),而数据是第二个属性。

如您所见,第二个列表没有'BIRTHDATE'列,我需要DataFrame来在此位置使用NaN或空格创建此列。

另外,我需要DataFrame像这样:

FILE      NAME    SURNAME    BIRTHDATE   NATIONALITY
----------------------------------------------------
123.xml    ANA     LÓPEZ     05-05-2000    ESP

458.xml    JUAN    PÉREZ       NaN         ESP

789.xml    PEDRO   CASTRO     07-07-2007   ESP

列表的数据必须在同一列中。

我已经完成了这段代码,但是似乎并没有我想要的表:

dictOfWords = { i : lista_archivos[i] for i in range(0, len(lista_archivos) ) }
d = dictOfWords
tabla = pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in dictOfWords.items() ]))
tabla_final = tabla.transpose()
tabla_final

另外,我已经做到了:

dictOfWords = { i : lista_archivos[i] for i in range(0, len(lista_archivos) ) }
print(dictOfWords)
tabla = pd.DataFrame.from_dict(dictOfWords, orient='index')
tabla

结果不好。

如果可能,我想要一个熊猫DataFrame和一个Spark DataFrame。

谢谢!!

胡安帕·阿里维利亚加

以下情况适用于您的情况:

In [5]: lista_archivos = [[['FILE','123.xml'],['NAME','ANA'],['SURNAME','LÓPEZ'],
   ...: ['BIRTHDATE','05-05-2000'],['NATIONALITY','ESP']], [['FILE','458.xml'],
   ...: ['NAME','JUAN'],['SURNAME','PÉREZ'],['NATIONALITY','ESP']], [['FILE','789.xml'],
   ...: ['NAME','PEDRO'],['SURNAME','CASTRO'],['BIRTHDATE','07-07-2007'],['NATIONALITY','ESP']]]

In [6]: pd.DataFrame(list(map(dict, lista_archivos)))
Out[6]:
    BIRTHDATE     FILE   NAME NATIONALITY SURNAME
0  05-05-2000  123.xml    ANA         ESP   LÓPEZ
1         NaN  458.xml   JUAN         ESP   PÉREZ
2  07-07-2007  789.xml  PEDRO         ESP  CASTRO

本质上,您将子列表转换为dict对象,并将这些列表提供给数据框架构造函数。数据帧构造函数非常自然地使用字典列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在列和行中使用不同长度的列表拆分数据框中的列表

如何使用 R 中不同长度的子列表列表制作数据框?

在 Python 中使用不同长度的输出列表查找不同列表的所有可能组合(不是重复)

如何在Python中将具有不同长度的多个值的嵌套列表转换为pandas数据框?

如何从具有不同长度的列表列表中创建Pandas DataFrame?

如何在python中从不同长度的列表创建字典

如何在python中为单个数据帧制作不同长度的列表?

如何在Python中使用不同的数据类型打印嵌套列表的元素?

在循环中创建不同长度的字典以附加到列表中。(json 到 Pandas 数据框)

合并不同长度的数据框列表

从列表中生成具有不同长度的数据框

如何将两个不同长度的列表合并为Pandas数据框?

如何将具有不同长度元素的列表转换为数据框

具有不同长度的列表列表的元素级联

转换pandas df为不同长度的列表列表

使用dplyr重新组织列表中具有不同长度元素的数据框

使用R中的函数迭代包含不同长度的列号列表的数据框

如何使用python中的列表列表有效创建摘要数据框

从列表中使用python创建数据框

如何在数据库中存储不同长度的列表/订单?

如何在 R 中使用多个列表列来展平数据框(从 BigQuery 加载)

如何在不使用导入的情况下在 Python 中将列表(包含彩色字符的不同长度)打印为列?

如何使用具有不同长度的列表?

熊猫-解开不同长度的元组的列表列

如何在python中合并两个不同长度的数据框

如何在python中合并2个不同长度的列表

如何在python中压缩几个未定义的不同长度列表?

如何压缩不同长度的列表?

合并不同长度的python列表