繁体   English   中英

DataFrame按行拆分并使用Python Pandas应用于标题一列

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

我正在某个项目上,想出了一个凌乱的情况,我必须根据数据帧的第一列拆分数据帧,所以情况就是我随身携带的数据帧来自SQL查询,我对此做了很多操作。 所以这就是为什么不在这里发布代码。

目标:我随身携带的数据框类似于以下屏幕截图,并且可以作为xlsx文件使用

在此处输入图片说明

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

在此处输入图片说明

问题是我无法在逻辑上说明我是Python的新手,如何在数据框本身上完成此操作。

我认为您可以这样做:

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()

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

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

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

其中“所需值”将是这些行之一的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM