DataFrame 按行拆分并使用 Python Pandas 在 header 一列上应用

DataFrame Split On Rows and apply on header one column using Python Pandas

我正在做一些项目,想出了一个混乱的情况,我必须根据数据框的第一列拆分数据框,所以情况就是我的数据框我来自 SQL 查询,我对此做了很多操作。这就是为什么不在这里发布代码的原因。

目标: 我的数据框就像下面的截图,它可用an xlsx file.

输出: 我正在寻找类似附件的输出:

问题是我无法在此处放置任何逻辑,因为我是 Python.

中的新手,因此我如何在数据框本身上完成此操作

将 Excel 文件加载到 Pandas 数据框中,然后根据条件提取行。

dframe = pandas.read_excel("sample.xlsx")

dframe = dframe.loc[dframe["Placement# Name"] == "Needed value"]

其中 "needed value" 是其中一行的值。

我认为你可以这样做:

df = df.set_index('Placement# Name')
df['Date'] = df['Date'].dt.strftime('%M-%d-%Y')

df_sub = df[['Delivered Impressions','Clicks','Conversion','Spend']].sum(level=0)\
  .assign(Date='Subtotal')

df_sub['CTR'] = df_sub['Clicks'] / df_sub['Delivered Impressions']
df_sub['eCPA'] = df_sub['Spend'] / df_sub['Conversion']

df_out = pd.concat([df, df_sub]).set_index('Date',append=True).sort_index(level=0)

startline = 0
writer = pd.ExcelWriter('testxls.xlsx', engine='openpyxl')
for n,g in df_out.groupby(level=0): 
    g.to_excel(writer, startrow=startline, index=True)
    startline += len(g)+2
writer.save()