用熊猫从Excel工作表列创建dict



我正在尝试通过n.xslx文件的目录进行解析,并创建一个.py文件,这只是前两列的dist,但是我正在遇到问题使用代码,我只附加了目录中两个工作簿的第一个工作表。这是我到目前为止写的代码

import os
import xlrd
import pandas as pd
import pprint
import json
pp = pprint.PrettyPrinter(indent=4)
def get_did(xlsx, dbd):
    dbd = pd.read_excel(xlsx, index_col=0, usecols="A,B").to_dict()
    with open("db.py", 'a', newline='') as f:
        json.dump(dbd, f, sort_keys=True, indent=4)
path = os.getcwd()
filenames = os.listdir(path)
dbd = {}
for filename in filenames:
    if filename.endswith('.xlsx'):
        get_did(filename, dbd)
print(dbd)

我正在使用的数据仅在第一列中具有一个ID号,第二列中有一个描述字符串,因此输出看起来像

{
    "Description": {
        "1": "45KV Suspension Polymer-DE",
        "2": "45KV Post Tie Polymer",
        "3": "45KV Post Vert SAC Polymer",
        "4": "45KV Post Hor SAC Polymer",
        "5": "35KV Post Tie",
        "6": "35KV Post Vertical SAC",
        "7": "45KV Post Vertical SAC",
        "8": "35KV Post Horizontal SAC",
                ...
        "72": "69KV Post Hor LAC Polymer",
        "73": "69KV Post Vert LAC Polymer",
        "74": "69KV Post Vert LAC Poly-Dbl",
        "75": "15KV Suspension Polymer",
        "76": "15KV Suspension Polymer-DE"
    }
}{
    "Size": {
        "1": "1/4" EHS",
        "2": "5/16" EHS",
        "3": "7/16" EHS",
        "4": "9/16" EHS",
        "5": "1/2" AW",
        "6": "3#7 HS CW",
        "7": "7#8 HS CW",
        "8": "7#6 EHS CW",
        "9": "19#9 EHS CW",
        "10": "1/4" GLV (3#7)"
    }
}

理想情况下,我想将字符串作为密钥和ID号作为值,但是正确的列和信息已将其附加到新文件上,只是并不包括所有工作表。我仍然是熊猫和递归的新手,所以我知道这两者都是根本的理解,这是根源问题,但是对这种理解的任何帮助都将不胜感激。

基本思想正在遵循,您可以输出您喜欢的格式,但大多数常见的类型是'.csv','.txt'或excel:

import os
import pandas as pd
path =os.chdir(r"yourdirectory")     
datalist=[]
mydict = {}
for file in os.listdir():
    filelist = [f for f in os.listdir() if f.endswith("xlsx")]
for fs in filelist:    
    df = pd.read_excel(fs, sep = 't') 
    datalist.append(df)
alldata = pd.concat(datalist)
mydict = dict(zip(alldata[alldata.columns[0]], alldata[alldata.columns[1]]))
print(mydict)

最新更新