我试图解析一个非常简单的xlsx
文件。它有以下格式的4张:lookup table。我为此使用了熊猫。
这是我想做的事情:
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')
问题:
有一种很好的方式可以使用" sheet"作为没有一些柜台的工作表的名称?即:
counter=0
for sheets in xls.sheet_names
cur_sheet=xls.parse(xls.sheet_names[counter])
我觉得这真是太丑了......
我对Python很陌生,它对我来说真的不直观。我整天都在网上搜索,无法找到正常的解决方法。
谢谢!
答案 0 :(得分:0)
让我们一一去。 我重新创建了 .xlsx 文件,如图所示,并添加了如何将文件读入pandas数据帧的更改。 1.您可以通过以下方式使用applymap:
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'在数据帧的每个单元格中,
2. dropna()摆脱了NaN值。
3.这就是你用pythonic方式循环的方式
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_3和行3_0中有x,则元组将如下所示:('2_3', ['3_0'])
。这是你真正想做的吗?