使用列表和字典创建数据框

时间:2020-02-25 10:14:56

标签: python pandas list dataframe dictionary

Device = [D1,D2]
out1=[42,145]
out2 = [0,1]
data = [{'A': '0.3%','B':'0.5%','C':'0.6%'},{'A': '1.3%','B':'2.5%','C':'0.6%'}]

我想要输出:

Device   output     data
D1        42/0      0.3%/0.5%/0.6%
D2        145/1     1.3%/2.5%/0.6%

因此,输出的格式应为out1 [0] / out2 [0]和out1 [1] / out2 [1] 并且数据列应采用以下格式 数据[0] ['A'] /数据[0] ['B'] /数据[0] ['C']

请帮助

2 个答案:

答案 0 :(得分:1)

这是一种方法。

例如:

Device = ["D1","D2"]
out1=[42,145]
out2 = [0,1]
data = [{'A': '0.3%','B':'0.5%','C':'0.6%'},{'A': '1.3%','B':'2.5%','C':'0.6%'}]



df = pd.DataFrame({'Device': Device,
                   'output': ["{}/{}".format(*i) for i in zip(out1, out2)],
                   'data': ["/".join(i.values()) for i in data]})
print(df)

输出:

  Device output            data
0     D1   42/0  0.3%/0.5%/0.6%
1     D2  145/1  1.3%/2.5%/0.6%

答案 1 :(得分:0)

Image of code Output of code

Device = ['D1','D2']
out1=[42,145]
out2 = [0,1]
data = [{'A': '0.3%','B':'0.5%','C':'0.6%'},{'A': 
         '1.3%','B':'2.5%','C':'0.6%'}]
list1=[];list2=[]
for i in range(len(out1)):list1.append(str(out1[i])+"/"+str(out2[i]))
for i in range(len(data)):                                 
    list2.append(data[i]['A']+'/'+data[i]['B']+'/'+data[i]['C'])
list3={Device[0]:list1,Device[1]:list2}
df=pd.DataFrame(list3,index=[Device[0],Device[1]])
df.rename(columns={Device[0]:'output',Device[1]:'data'},inplace=True);df.rename_axis(index='Device')
相关问题