import xlrd import xlwt import re import pandas as pd from datetime import date,datetime file_path = "C:\\Users\\function_model.xls" def readexcel(): df = pd.read_excel(file_path ,"配置") # e_id # id # expression # name # freq # column_data = df['e_id'] excel_date = df.loc[:, ['e_id', 'id','expression', 'name', 'freq']] str1= 'rDataV' str2 = 'fillMissingDates' str3 = 'jactor_value' history3 = 'quantile(B' trend_judgement = 'judgement(' marginal_trend_media = 'trend_media(' my_array = [] list_name = ["e_id", "expression_index", "expression_name", "expression_factor_freq", "expression_factor_id", "expression_factor_is_industry", "expression_name"] my_array.append(list_name) for index, row in excel_date.iterrows(): expression = row['expression'] e_id = row['e_id'] id = row['id'] name = row['name'] freq = row['freq'] if str1 in expression: list_index=[e_id ,0 , "B" ,freq ,0 ,0 ,"仅占位"] my_array.append(list_index) elif str2 in expression: pattern = r'\b\d{12}\b' matches = re.findall(pattern, expression) list_index = [e_id, 0, "B", freq, matches[0], 1, name[:-4]] my_array.append(list_index) elif marginal_trend_media in expression: pattern = r'\b\d{12}\b' matches = re.findall(pattern, expression) list_index = [e_id, 0, "B", freq, matches[0], 1, name[:-5]] my_array.append(list_index) elif history3 in expression: pattern = r'\b\d{12}\b' matches = re.findall(pattern, expression) list_index = [e_id, 0, "B", freq, matches[1], 1, name[:-5]] my_array.append(list_index) elif trend_judgement in expression: pattern = r'\b\d{12}\b' matches = re.findall(pattern, expression) list_index = [e_id, 0, "B", freq, matches[1], 1, name[:-5]] my_array.append(list_index) elif str3 in expression: list_index = [e_id, 0, "B", freq, 0, 0, "占位"] my_array.append(list_index) else: list_index = [e_id, 0, "B", freq, "待填充", 1, "待填充"] my_array.append(list_index) print(my_array) # 将数组转化为DataFrame dd = pd.DataFrame(my_array) dd.to_excel('配置.xlsx', index=False, header=False) if __name__ == '__main__': readexcel()