【问题标题】:How to export data in an excel file with specific column names from a dictionary?如何从字典中导出具有特定列名的excel文件中的数据?
【发布时间】:2021-02-18 19:59:40
【问题描述】:

我做了一个如下的 dic:

number_of_c_in_level_ = dict()

for x in range(1,50):
  number_of_c_in_level_[x]=x*2

如何将这些数据导出到列名如下的 excel 文件中

number_of_c_in_level_1  number_of_c_in_level_2  ...   number_of_c_in_level_50
2                        4                      ...         100

or, please see an exemplar final excel file here

【问题讨论】:

  • 请注意range(1,50) 是区间[1,50)。这意味着 50 不包括在该范围内。同样在您的示例中,2*1 写为 1,但应该是 2

标签: python excel pandas python-2.7 dataframe


【解决方案1】:

您可以根据需要使用pandas模块创建一个DataFrame(类似于excel)。

pandas 模块中的 DataFrame 对象可以接受字典对象作为输入,并将转换为类似于结构的 excel。请参阅下面的演示以更好地理解..

import pandas as pd # module required for the DataFrame operations
print(number_of_c_in_level_)

{1: 2, 2: 4, 3: 6, ...., 48: 96, 49: 98}

在转换为DataFrame之前,根据输出中的要求更改字典key : values

注意: 字典值应该是数组(列表)的形式,以获得预期的 DataFrame。

Req_Change = {"number_of_c_in_level_"+str(i):[j] for i,j in number_of_c_in_level_.items()}

上面的代码使所需的列名格式和数组形式的值。

print(Req_Change)

{'number_of_c_in_level_1': [2], .... , 'number_of_c_in_level_49': [98]}

现在我们可以通过以下步骤将此 Dictionary 转换为 DataFrame,

Export = pd.DataFrame(df)
print(Export)

number_of_c_in_level_1  number_of_c_in_level_2  ... number_of_c_in_level_49
2                       4                                98

最后让我们将 DataFrame 导出到 Excel / csv,

注意:要导出到 Excel,您可能需要 openpyxl 模块。所以你可以导出成csv,以后再改成Excel格式

Export.to_excel("Export.xlsx",index=False)

Export.to_csv("Export.csv",index=False)

【讨论】:

    【解决方案2】:

    您可以简单地将文本放在字典的关键部分,转换为数据框,然后将其写入 CSV 或 Excel(我推荐 CSV,因为它是一种更通用的格式)。这是您根据版本编辑的代码:

    import pandas as pd
    
    number_of_c_in_level_ = dict()
    
    for x in range(1,51):
      number_of_c_in_level_['number_of_c_in_level_' + str(x)] = 2*x
    
    df = pd.DataFrame(number_of_c_in_level_, index=[0])
    with open('result2.csv','w')  as csv_file:
        df.to_csv(csv_file,index=False)
    

    【讨论】:

      猜你喜欢
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      相关资源
      最近更新 更多