gpt4 book ai didi

Python pandas 转置数据问题

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:20 30 4
gpt4 key购买 nike

我无法弄清楚如何正确转置 DataFrame 中的数据以计算实际值和目标之间的差异。做类似的事情:
df['difference'] = df['Revenue'] - df['Target'],
很简单,所以这更像是一个期望的问题输出格式。

假设您有一个包含以下列和值的 DataFrame:

enter image description here

Desire 输出将是两个来源的汇总,并在Source 级别进行比较。假设有 30 多个类似于收入、用户和新用户的附加数据点... enter image description here :



enter image description here


非常感谢任何和所有建议。

最佳答案

设置

df = pd.DataFrame([
['2016-06-01', 15000, 10000, 1000, 900, 100, 50, 'US'],
['2016-06-01', 16000, 12000, 1500, 1200, 150, 100, 'UK']
], columns=['Date', 'Revenue', 'Target', 'Users', 'Target', 'New Users', 'Target', 'Source'])
df

enter image description here

您的列并不唯一。我将首先将 SourceDate 移动到索引中并重命名列。

df1 = df.copy()
df1.Date = pd.to_datetime(df1.Date)
df1 = df1.set_index(['Date', 'Source'])
idx = pd.MultiIndex.from_product([['Revenue', 'Users', 'New Users'], ['Actual', 'Target']])
df1.columns = idx
df1

enter image description here

然后将第一级移动到索引

df1 = df1.stack(0)
df1

enter image description here

从这里开始,我将汇总['收入'、'用户'、'新用户'] 的来源,并将结果分配给 df2

df2 = df1.groupby(level=-1).sum()
df2

enter image description here

最后:

df2['Difference'] = df2.Actual / df2.Target
df1['Difference'] = df1.Actual / df1.Target

df2

enter image description here

df1.stack().unstack([0, 1, -1])

enter image description here

关于Python pandas 转置数据问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38217156/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com