Python:将列表输出为excel

对于我的硕士论文,我需要计算给定事件datex个股票的预期回报。 我写了下面的代码,这是我的意图(匹配法玛和法国因素与事件date样本)。 但是,当我尝试将其导出为Excel,我似乎无法得到正确的输出。 即它不包含列标题,如date,fama&法国因素的名称和相应的行。

有没有人有这个解决方法? 任何改进很乐意欣赏。 这是我的代码:

import pandas as pd # Data import ff_five = pd.read_excel('C:/Users/MBV/Desktop/cmon.xlsx', infer_datetime_format=True) df = pd.read_csv('C:/Users/MBV/Desktop/4.csv', parse_dates=True, infer_datetime_format=True) # Converting dates to datetime df['Date'] = pd.to_datetime(df['Date'], infer_datetime_format=True) # Creating an empty placeholder end_date = [] # Iterating over the event dates, creating a start and end date 60 months apart for index, row in df.iterrows(): end_da = row['Date']-pd.DateOffset(months=60) end_date.append(end_da) end_date_df = pd.DataFrame(data=end_date) m = pd.merge(end_date_df,df,left_index=True,right_index=True) m.columns = ['Start','End'] ff_factors = [] for index, row in m.iterrows(): ff_five['Date'] = pd.to_datetime(ff_five['Date']) time_range= (ff_five['Date'] > row['Start']) & (ff_five['Date'] <= row['End']) df = ff_five.loc[time_range] ff_factors.append(df) 

编辑:这是我从Python获取数据的尝试。

 ff_factors_df = pd.DataFrame(data=ff_factors) # Create a Pandas Excel writer using XlsxWriter as the engine. writer = pd.ExcelWriter('estimation_data.xlsx', engine='xlsxwriter') # Convert the dataframe to an XlsxWriter Excel object. ff_factors_df.to_csv(writer, sheet_name='Sheet1') # Close the Pandas Excel writer and output the Excel file. writer.save() 

输出一个dataframe到CSV或Excel应该可以完成

 ff_five.to_excel('Filename.xls') 

如果你想要一个csv的话,把excel改成csv。

好吧,我试图解释你想做什么,而不是很清楚。 但是,如果我正确地解释它,你正在尝试创build一些基于其他数据的附加列。 不用创build单独的列表,你可以把它们作为新的列,然后输出你想要的列。 像这样的东西也许(必须做一些假设,并创build一些假的数据,看看这是否在正确的轨道上):

 import pandas as pd ff_five = pd.DataFrame() ff_five['Date'] = ["2012-11-01", "2012-11-30"] df = pd.DataFrame() df['Date'] = ["2012-12-01", "2012-12-30"] df['Date'] = pd.to_datetime(df['Date']) df['End'] = df['Date'] - pd.DateOffset(months=60) df.columns = ['Start', 'End'] ff_five['Date'] = pd.to_datetime(ff_five['Date']) df['ff_factor'] = (ff_five['Date'] > df['Start']) & (ff_five['Date'] <= df['End']) df.to_excel('estimation_data.xlsx', sheet_name='Sheet1')