首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何合并多个工作表,并将列名与工作表名称重新命名?

如何合并多个工作表,并将列名与工作表名称重新命名?
EN

Stack Overflow用户
提问于 2021-06-06 07:34:15
回答 1查看 421关注 0票数 1

我有以下数据。所有这些都在一个excel文件中。

代码语言:javascript
复制
    Sheet name: may2019
    Productivity Count                          
 Date : 01-Apr-2020 00:00 to 30-Apr-2020 23:59                          
 Date Type: Finalized Date Modality: All     
    Name    MR  DX  CT  US  MG  BMD TOTAL
    Svetlana    29  275 101 126 5   5   541
    Kate    32  652 67  171 1   0   923
    Andrew  0   452 0   259 1   0   712
    Tom     50  461 61  104 4   0   680
    Maya    0   353 0   406 0   0   759
    Ben     0   1009    0   143 0   0   1152
    Justin  0   2   9   0   1   9   21
    Total   111 3204    238 1209    12  14  4788

    Sheet Name: June 2020
Productivity Count                              
 Date : 01-Jun-2019 00:00 to 30-Jun-2019 23:59                              
 Date Type: Finalized Date Modality: All

NAme US DX  CT  MR  MG  BMD TOTAL
Svetlana    4   0   17  6   0   4   31
Kate    158 526 64  48  1   0   797
Andrew  154 230 0   0   0   0   384
Tom     1   0   19  20  2   8   50
Maya    260 467 0   0   1   1   729
Ben     169 530 59  40  3   0   801
Justin  125 164 0   0   4   0   293
Alvin   0   1   0   0   0   0   1
Total   871 1918    159 114 11  13  3086

我想将所有的工作表合并到工作表上,删除所有工作表的前3行,这是我正在寻找的输出。

代码语言:javascript
复制
Sl.No   Name US_jun2019 DX_jun2019  CT_jun2019  MR_jun2019  MG_jun2019  BMD_jun2019 TOTAL_jun2019   MR_may2019  DX_may2019  CT_may2019  US_may2019  MG_may2019  BMD_may2019 TOTAL_may2019
1   Svetlana    4   0   17  6   0   4   31  29  275 101 126 5   5   541
2   Kate    158 526 64  48  1   0   797 32  652 67  171 1   0   923
3   Andrew  154 230 0   0   0   0   384 0   353 0   406 0   0   759
4   Tom     1   0   19  20  2   8   50  0   2   9   0   1   9   21
5   Maya    260 467 0   0   1   1   729 0   1009    0   143 0   0   1152
6   Ben     169 530 59  40  3   0   801 50  461 61  104 4   0   680
7   Justin  125 164 0   0   4   0   293 0   452 0   259 1   0   712
8   Alvin   0   1   0   0   0   0   1   #N/A    #N/A    #N/A    #N/A    #N/A    #N/A    #N/A

我尝试了下面的代码,但输出不是我要找的。

代码语言:javascript
复制
df=pd.concat(df,sort=False)
df= df.drop(df.index[[0,1]])
df=df.rename(columns=df.iloc[0])
df= df.drop(df.index[[0]])
df=df.drop(['Sl.No'], axis = 1)

print(df)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-06 10:14:59

首先,阅读两个Excel工作表。

代码语言:javascript
复制
>>> df1 = pd.read_excel('path/to/excel/file.xlsx', sheet_name="may2019")
>>> df2 = pd.read_excel('path/to/excel/file.xlsx', sheet_name="jun2019")

删除前三行。

代码语言:javascript
复制
>>> df1.drop(index=range(3), inplace=True)
>>> df2.drop(index=range(3), inplace=True)

将列重命名为第一行,并删除第一行。

代码语言:javascript
复制
>>> df1.rename(columns=dict(zip(df1.columns, df1.iloc[0])), inplace=True)
>>> df1.drop(index=[0], inplace=True)
>>> df2.rename(columns=dict(zip(df2.columns, df2.iloc[0])), inplace=True)
>>> df2.drop(index=[0], inplace=True)

向列中添加后缀。

代码语言:javascript
复制
>>> df1.rename(columns=lambda col_name: col_name + '_may2019', inplace=True)
>>> df2.rename(columns=lambda col_name: col_name + '_jun2019', inplace=True)

删除第二个DF中的重复名称列。

代码语言:javascript
复制
>>> df2.drop(columns=['Name'], inplace=True)

将两个数据连在一起

代码语言:javascript
复制
>>> df = pd.concat([df1, df2], axis=1, inplace=True)

所有代码都在一个地方:

代码语言:javascript
复制
import pandas as pd

df1 = pd.read_excel('path/to/excel/file.xlsx', sheet_name="may2019")
df2 = pd.read_excel('path/to/excel/file.xlsx', sheet_name="jun2019")

df1.drop(index=range(3), inplace=True)
df2.drop(index=range(3), inplace=True)

df1.rename(columns=dict(zip(df1.columns, df1.iloc[0])), inplace=True)
df1.drop(index=[0], inplace=True)
df2.rename(columns=dict(zip(df2.columns, df2.iloc[0])), inplace=True)
df2.drop(index=[0], inplace=True)

df1.rename(columns=lambda col_name: col_name + '_may2019', inplace=True)
df2.rename(columns=lambda col_name: col_name + '_jun2019', inplace=True)

df2.drop(columns=['Name'], inplace=True)

df = pd.concat([df2, df1], axis=1, inplace=True)

print(df)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67856778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档