提问人:Nairda123 提问时间:6/22/2021 更新时间:6/23/2021 访问量:1325
将多个工作表连接在一起,并将列作为其工作表名称
Joining multiple sheets together with column as their sheet name
问:
我在 Python 中有一个带有 Pandas 的函数,可以转换从 excel 文件读入的一些 df。
该 Excel 文件有 5 张纸,我想通过相同的功能进行处理,然后在最后将它们连接起来,并增加一列df['customer'] = sheet name
假设我想通过以下函数运行工作表:
def function(df):
df = df.rename(columns=df.iloc[0]).drop(df.index[0]) #drop first row
df = df.rename(columns={np.nan: 'Model'}) #rename column to 'model'
indexNames = df[df['Model'].isin(['No','b', 'a','1988 Total'])].index
df = df.drop(indexNames)
df = df.dropna(axis=1,how='all')
return df
最后,我希望有 5 个不同的 df(它们具有相同的结构),我最后可以加入。但是,从 5 个不同的工作表中,我需要将sheet_name显示为一列,以便我可以区分它们。
我尝试使用以下代码事先加入它们:
df = pd.concat(pd.read_excel("Final- Stock and Sales WG 2021 New format.xlsx", sheet_name=None), ignore_index=True)
但是,在这条线的函数上运行时,我得到了一个值错误ValueError: cannot reindex from a duplicate axis
indexNames = df[df['Model'].isin(['No','b', 'a','1988 Total'])].index
欢迎任何更正或其他方法。谢谢!
答:
上一个:Python YouTube 报告 API 身份验证
下一个:字典有时具有多个键
评论