在数据分析和处理中,我们经常需要对Excel表格进行操作。Python Pandas库提供了丰富的API来读取、写入、修改Excel表格。本文将介绍如何使用Python Pandas库操作Excel表格,包括向Excel表格添加新行、创建Excel表格等。
下面是一个示例函数add_row_to_excel()
,用于向Excel表格中添加新行:
def add_row_to_excel(row_data, sheet_name, excel_path, day_num=None):
df = pd.read_excel(excel_path, header=0, sheet_name=sheet_name)
if day_num == None:
df_all = pd.DataFrame(data=None)
df_all = pd.concat([df_all, df], ignore_index=True)
df = pd.DataFrame(row_data)
df_all = pd.concat([df_all, df], ignore_index=True)
data_list = df_all.drop_duplicates(keep='first')
df_all.to_excel(excel_path, index=False, sheet_name=sheet_name, encoding='utf-8')
else:
targrt = row_data
day_row_num = day_num + 1
df_dict = df.to_dict()
for i in range(0, len(targrt)):
key = list(targrt.keys())[i]
try:
df_dict[key][day_row_num] = targrt[key][0]
except:
df_dict[int(key)][day_row_num] = targrt[key][0]
df_all = pd.DataFrame(df_dict)
with pd.ExcelWriter(excel_path, mode='a', if_sheet_exists='replace') as writer:
df_all.to_excel(writer, index=False, sheet_name=sheet_name)
该函数使用pandas
库的read_excel()
方法读取Excel表格数据,并通过concat()
方法将原有数据和新行数据进行合并。其中,row_data
参数表示新行的数据信息,sheet_name
参数表示要操作的Excel表格中的表名,excel_path
参数表示Excel文件路径,day_num
参数表示要添加新行的位置。
下面是一个示例函数creat_excel_sheet()
,用于创建Excel表格:
def creat_excel_sheet(sheet_name, stock_code_list, stock_name_list):
pd_dict = {'时间': ['初次买入时间', '初次买入价格', '第1天开盘', '第2天开盘', '第3天开盘', '第4天开盘', '第5天开盘', '第6天开盘']}
columns = len(stock_code_list)
for i in range(0, columns):
buy_time = str(d_buy)
pd_dict[f'{stock_code_list[int(i)]}'] = [buy_time, "", "", "", "", "", "", ""]
pd_dict[f'{stock_name_list[int(i)]}'] = [buy_time, "", "", "", "", "", "", ""]
stock_signal_data = pd.DataFrame(pd_dict)
try:
with pd.ExcelWriter(Stock_templet_path, mode='a', engine='openpyxl') as writer:
stock_signal_data.to_excel(writer, sheet_name=sheet_name)
except:
df = pd.read_excel(Stock_templet_path, sheet_name=sheet_name, dtype={0: "string"})
row_column_num = df.shape
if ( row_column_num[1] - 2 ) / 2 < columns:
df_dict = df.to_dict()
df_dict[f'{stock_code_list[int(columns - 1)]}'] = {0:buy_time, 1:"", 2:"", 3:"", 4:"", 5:"", 6:"", 7:""}
df_dict[f'{stock_name_list[int(columns - 1)]}'] = {0:buy_time, 1:"", 2:"", 3:"", 4:"", 5:"", 6:"", 7:""}
df_all = pd.DataFrame(df_dict)
with pd.ExcelWriter(Stock_templet_path, mode='a', if_sheet_exists='replace') as writer:
df_all.to_excel(writer, index=False, sheet_name=sheet_name)
该函数创建一个Excel表格,并向其中写入数据。其中,sheet_name
参数表示要创建的表名,stock_code_list
和`stock_name_list参数分别表示股票代码和股票名称列表。
在这个函数中,我们首先创建了一个字典pd_dict用于组织Excel表格的列信息。通过循环遍历股票代码和名称列表,我们将它们作为列名添加到字典中,并设置初始值为空字符。最后,将字典转换成DataFrame对象,并使用to_excel()方法写入到Excel表格中。
需要注意的是,如果Excel表格已经存在,则需要使用read_excel()方法读取已有表格数据,并检查是否需要添加新的列信息。
以上便是使用Python Pandas库操作Excel表格的技巧。通过这些API,我们可以轻松地读取、修改和写入Excel表格数据,提高数据处理和分析的效率。
股票自动化处理见:https://yangfei.blog.csdn.net/article/details/129832565?spm=1001.2014.3001.5502