Python 将xlsx文件解析为字典
我试图解析一个非常简单的Python 将xlsx文件解析为字典,python,excel,pandas,parsing,dictionary,Python,Excel,Pandas,Parsing,Dictionary,我试图解析一个非常简单的xlsx文件。它有以下格式的4张图纸:。我用熊猫来做这个 以下是我想做的: xls = pandas.ExcelFile('file.xlsx') for sheet in xls.sheet_names: cur_sheet=xls.parse(sheet) cur_sheet=set_index(sheet) dic = cur_sheet.to_dict('index') 问题: 所有内容都使用unicode,因此都有一个“u”前缀,与字典
xlsx
文件。它有以下格式的4张图纸:。我用熊猫来做这个
以下是我想做的:
xls = pandas.ExcelFile('file.xlsx')
for sheet in xls.sheet_names:
cur_sheet=xls.parse(sheet)
cur_sheet=set_index(sheet)
dic = cur_sheet.to_dict('index')
问题:
counter=0
for sheets in xls.sheet_names
cur_sheet=xls.parse(xls.sheet_names[counter])
import pandas as pd
pd.set_option('expand_frame_repr', False)
dataframe = pd.read_excel('file.xlsx', sheetname = name, header = 0, index_col = 0)
dataframe.applymap(lambda x: x.strip('u'))
它应用了在数据帧的每个单元中获取“u”RID的函数
二,。删除NaN值
3.这就是你如何以蟒蛇的方式循环
xls = pd.ExcelFile('file.xlsx')
sheets = xls.sheet_names
for sheet in sheets:
#your code
让我们把它们结合起来:
import pandas as pd
xls = pd.ExcelFile('file.xlsx')
sheets = xls.sheet_names
for sheet in sheets:
dataframe = pd.read_excel('file.xlsx', sheetname = sheet)
dataframe = dataframe.dropna()
dataframe.applymap(lambda x: x.strip('u'))
4.我真的不明白这个问题,所以我没办法
根据评论中的对话
import pandas as pd
df = pd.read_excel('file.xlsx', sheetname = name, header = 0, index_col = 0)
cols = df.columns
the_list = list()
for col in cols:
print(df[~df[col].isnull()].index.tolist())
column = (col, df[~df[col].isnull()].index.tolist())
the_list.append(column)
此代码打开您的文件,然后在列中循环,并为包含列id和行id列表的每列创建一个元组。因此,如果在第2\u 3列和第3\u 0行中有x,则元组将如下所示:
('2\u 3',['3\u 0'])
。这就是你真正想做的吗?ps.我希望左边的一栏是字典的“关键”(所有工作表都共享)。实际上,你的问题应该一次只关注一件事。第(3)点与您的问题没有真正的联系,是我唯一有信心回答并回避的问题。去掉计数器
,直接使用工作表
,尽管我建议将其重命名为工作表
,因为它是单数的,有助于理解。所以,对于xls.sheet\u name中的sheet:cur\u sheet=xls.parse(sheet)
。注意,我会这样做。关于反问题。您的建议(以及我的第一个猜测)适用于xls.parse,但不适用于cur_sheet.set_index(sheet)。部分原因是(我猜)工作表被解读为u'Bla,而不仅仅是“Bla”,所以它找不到它1没有帮助,我得到了这样的信息:AttributeError:(“'float'对象没有属性'strip',u'出现在索引3_11')你说你到处都有'u',所以我假设你到处都有字符串,错误意味着那里也有浮动。因此,请澄清这些“u”的确切位置。我附上了我的桌子的图片。“查找表”在我的第一条消息中。”u是unicode格式的,请给我5分钟,我将生成与您完全相同的文件并修复代码。@NoaRegev请尝试以下操作。第1行:a='hello'
。第2行:b=u'hello'
。第3行:打印a==b
。这是真的。