Python 将()应用于Excel文件每个数据帧的每一列,如
我有一个包含多个工作表的xlsx文件 我在工作表中阅读并将其分为数据框:Python 将()应用于Excel文件每个数据帧的每一列,如,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含多个工作表的xlsx文件 我在工作表中阅读并将其分为数据框: xls=pd.ExcelFile('path/to/multisheet_excelfile.xlsx') dfs={sheet: pd.read_excel(xls,sheet) for i, sheet in enumerate(xls.sheet_names)} 我遍历数据帧,然后遍历行,以应用: 有没有更好的方法来实现这一点,可能不涉及双for循环?没有循环就无法实现,因为pandas从工作表创建数据框。但您可以
xls=pd.ExcelFile('path/to/multisheet_excelfile.xlsx')
dfs={sheet: pd.read_excel(xls,sheet) for i, sheet in enumerate(xls.sheet_names)}
我遍历数据帧,然后遍历行,以应用:
有没有更好的方法来实现这一点,可能不涉及双for循环?没有循环就无法实现,因为
pandas
从工作表
创建数据框
。但您可以在1个循环中完成:
# {'sheet_name1': df1, 'sheet_name2': df2, ...}
dfs = pd.read_excel(xls, sheet_name=pd.ExcelFile('file_path').sheet_names) # type: dict
dfs = {
sheet_name: df.applymap(lambda x: re.sub("[\[].*?[\]]", "", repr(x))
for sheet_name, df in dfs.items()
}
# {'sheet_name1': df1, 'sheet_name2': df2, ...}
dfs = pd.read_excel(xls, sheet_name=pd.ExcelFile('file_path').sheet_names) # type: dict
dfs = {
sheet_name: df.applymap(lambda x: re.sub("[\[].*?[\]]", "", repr(x))
for sheet_name, df in dfs.items()
}