读取文件

import pandas as pd
import numpy as np
import time,os

file = r"C:\Users\Administrator\Desktop\9.1~9.17\511收银汇总表(预计算) 20230815--20230831 (2023-09-18 09:14:53).xlsx"
today = time.strftime('%Y-%m-%d')
output_floder = os.path.dirname(file)

筛选特定行

# 筛选出“大区经理”是“王风涛”的行
result = df[df['大区经理'] == '王风涛']
#读取excel文件,header设为3,跳过最后一行,选区前50列
df = pd.read_excel(file,header=3,skipfooter=1,usecols=list(range(50))

重命名列

df = df.rename(columns={
'Unnamed: 2': '门店ID',
'Unnamed: 3':'营业天数',
'Unnamed: 4':'流水金额',
'Unnamed: 5':'实收金额',
'Unnamed: 7':'账单数',
'美团':'美团流水',
'饿了么':'饿了么流水',
'自提流水':'小程序流水',
'自提实收':'小程序实收'

})

保留特定列

df = df.loc[:, ['门店ID','营业天数','账单数','流水金额','实收金额','堂食流水','堂食实收','小程序流水','小程序实收','外卖流水','外卖实收','美团流水','饿了么流水','自营流水']]

分组groupby

hualala_df = hualala_df.groupby('门店编号')[['营业天数','账单数','流水金额','实收金额','堂食流水','堂食实收','小程序流水','小程序实收','外卖流水','外卖实收','美团流水','饿了么流水','自营流水']].sum().reset_index()

左右拼接

merge_df = pd.merge(hualala_df,meituan_df,how='outer',left_on='门店编号',right_on='门店编号', suffixes=('_hualala', '_meituan'))
#concat按index
import pandas as pd

df1 = pd.DataFrame({'A': [1, 4, 7], 'B': [2, 5, 8], 'C': [3, 6, 9]})
df2 = pd.DataFrame({'D': [10, 13, 16], 'E': [11, 14, 17], 'F': [12, 15, 18]})

result = pd.concat([df1, df2], axis=1)
print(result)


上下拼接

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})

df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']})
#可拼接多个
result = pd.concat([df1, df2])
print(result)

填充空值

merge_df = merge_df.fillna(0)

保存文件至新的sheet

with pd.ExcelWriter('文件名.xlsx', mode='a') as writer:
# 将DataFrame添加到现有的Excel文件的新sheet
df.to_excel(writer, sheet_name='新sheet')