使用Python Pandas库操作Excel表格的技巧

在数据分析和处理中,我们经常需要对Excel表格进行操作。Python Pandas库提供了丰富的API来读取、写入、修改Excel表格。本文将介绍如何使用Python Pandas库操作Excel表格,包括向Excel表格添加新行、创建Excel表格等。

1.向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参数表示要添加新行的位置。

2.创建Excel表格

下面是一个示例函数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

你可能感兴趣的:(python,pandas,excel)