【问题标题】:Importing multiple excel files with similar name, pivoting each excel file and then appending the results into a single file导入多个具有相似名称的 excel 文件,旋转每个 excel 文件,然后将结果附加到单个文件中
【发布时间】:2021-02-24 16:45:28
【问题描述】:

我的问题陈述如上。以下是我目前的进展

  1. 我想从同一个位置提取多个excel文件,即

测试1 测试2 Test3 ...(我正在使用 glob 来执行此操作) (完毕) 2.我想遍历文件夹并找到以字符串开头的文件(DONE) 3. 然后我形成了一个空的数据框。然后我想根据日期(作为列)旋转第一个文件数据框,转到下一个文件(做同样的事情),然后将我的结果附加到数据框。

我现在的问题是我将所有结果附加到我使用我的第一个文件创建的数据透视表中。

有人可以帮忙吗。

import pandas as pd
import numpy as np
import glob
glob.glob("C:/Users/Tom/Desktop/DC")
all_data = pd.DataFrame()
for f in glob.glob("C:/Users/Tom/Desktop/DC/Test?.xlsx"):
    df = pd.read_excel(f)
    pivot = pd.pivot_table(df, index='DC Desc', columns='Est Wk End Date', values=['Shipped/Ordered Units',aggfunc='sum')
    all_data = all_data.append(pivot,ignore_index=True)
all_data.to_excel("outputappended2.xlsx")

编辑。

非常感谢您的回复。这很有帮助。您能否告诉我如何在连接下一个枢轴之前添加一个新行,以便区分结果并按日期排序。

例如。我得到以下结果

DC Desc 2020 年 12 月 1 日 4 月 24 日 2021 年 2 月 6 日 5000
b 2000 4000 c 1000

我正在寻找

DC Desc 2020 年 12 月 1 日 2021 年 4 月 24 日 21 日 2021 年 2 月 6 日 5000
b 2000 4000

c 1000 Lookingfor 这是我可以告诉我从其他文件中获得什么信息并对列进行排序。任何帮助表示赞赏。

【问题讨论】:

    标签: python pandas dataframe numpy pivot


    【解决方案1】:

    您最好的选择应该是使用pd.concat。我喜欢的一个简单方法是创建一个processing 函数,然后连接所有数据帧。像这样的:

    import pandas as pd
    import glob
    
    def pivot_your_data(f):
        df = pd.read_excel(f)
        return pd.pivot_table(df, index='DC Desc', columns='Est Wk End Date', values='Shipped/Ordered Units', aggfunc='sum')
    
    all_data = pd.concat([pivot_your_data(f) for f in glob.glob("C:/Users/Tom/Desktop/DC/Test*.xlsx")])
    

    然后你可以删除索引或做更多的数据处理,但重点是使用pd.concat

    【讨论】:

      猜你喜欢
      • 2018-09-24
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      相关资源
      最近更新 更多