简体   繁体   English

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

[英]Create a dataframe using list and dictionaries

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%'}]

I WANT THE OUTPUT LIKE:我想要这样的输出:

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

So, the output should be in the format out1[0]/out2[0] and out1[1]/out2[1] and the data column should be in the format data[0]['A']/data[0]['B']/data[0]['C']因此,输出的格式应为 out1[0]/out2[0] 和 out1[1]/out2[1],数据列的格式应为 data[0]['A']/data[0] ]['B']/数据[0]['C']

PLease help请帮忙

This is one approach.这是一种方法。

Ex:前任:

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)

Output:输出:

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

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')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM