Python 如何从多个公共元素的嵌套列表创建数据帧
例如,假设我有任何嵌套列表Python 如何从多个公共元素的嵌套列表创建数据帧,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,例如,假设我有任何嵌套列表 A = [[120, 'Date1', 1.03], [120, 'Date2', 1.04], [120, 'Date3', 1.02], [240, 'Date1', 1.06], [240,'Date2', 0.98], [240, 'Date3', 1.04], [381, 'Date2', 1.03], [381, 'Date3', 0.85]] 每个子列表的第一个元素是股票编号,第二个元素是日期,第三个元素是相应的值。我想创建一个数据框架,其中
A = [[120, 'Date1', 1.03], [120, 'Date2', 1.04], [120, 'Date3', 1.02], [240, 'Date1', 1.06], [240,'Date2', 0.98],
[240, 'Date3', 1.04], [381, 'Date2', 1.03], [381, 'Date3', 0.85]]
每个子列表的第一个元素是股票编号,第二个元素是日期,第三个元素是相应的值。我想创建一个数据框架,其中列标题是股票编号,行标题是日期,元素是相应的(第三个元素)值。我不能直接确定我将如何做到这一点。我想形成这样的形式:
120 240 381
Date1 1.03 1.06 NaN
Date2 1.04 0.98 1.03
Date3 1.02 1.04 0.85
但是我想为任何大小的嵌套列表形成这个表单,所以我不能只为数据帧键入每个变量。任何帮助都将不胜感激
谢谢。由构造函数创建
DataFrame
,然后使用:
您可以首先将列表转换为dict,然后直接构建数据帧
d = {}
[d.setdefault(e[0],{}).update({e[1]:e[2]}) for e in A]
df = pd.DataFrame(d)
120 240 381
Date1 1.03 1.06 NaN
Date2 1.04 0.98 1.03
Date3 1.02 1.04 0.85
d = {}
[d.setdefault(e[0],{}).update({e[1]:e[2]}) for e in A]
df = pd.DataFrame(d)
120 240 381
Date1 1.03 1.06 NaN
Date2 1.04 0.98 1.03
Date3 1.02 1.04 0.85