|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一个excel表,很多工作薄是以省份命名的。现在是要把每个省份的数值,取前十名合并。做个for循环,当运行到山西省就跳出,报错KeyError: "None of [Index(['公司名称', '合计'], dtype='object')] are in the [columns]"。具体代码如下:
import openpyxl #引入excel的操作模块
wb = openpyxl.load_workbook('行业数据表2018 财险.xlsx')
sheet_name = wb.sheetnames[2:] #下面的代码等价于 sheet_name
data =pd.DataFrame(columns=('公司名称','合计','省份')) #空数据框
for i in sheet_name:
df1 = pd.read_excel('行业数据表2018 财险.xlsx', header=0,sheet_name=i)
df1 = df1[['公司名称','合计']]
print(df1.head(2))
print('-----------------------')
df2 = df1.append([{'公司名称': '全省总计', '合计': df1['合计'].sum()}])
df2['省份'] = i
print(df2.head(2))
print('-----------------------')
df2 = df2.sort_values('合计', ascending=False)
df2 = df2.head(11)
data1 = pd.concat([data, df2])
print(data1.head(2))
print('-----------------------')
|
|