【问题标题】:Create a dataframe using list and dictionaries使用列表和字典创建数据框
【发布时间】:2020-02-25 10:14:56
【问题描述】:
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']

请帮忙

【问题讨论】:

    标签: python pandas list dataframe dictionary


    【解决方案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%
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-08-18
        • 1970-01-01
        • 1970-01-01
        • 2020-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-26
        • 2017-08-23
        相关资源
        最近更新 更多