gpt4 book ai didi

python - 取多个值用Python Pandas制作表格

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:56 26 4
gpt4 key购买 nike

使用我的代码,我可以在 1 中加入两个 Excel 数据库。问题是它只显示 Revenue 列而不显示展示次数列。为了更清楚,我留下了代码和示例。我试过:

 df1 = df1.pivot(index = "Cliente", columns='Fecha', values=['Impresiones','Revenue']) 

但我有一个错误:Exception: Data must be 1-dimensional

代码:

import pandas as pd
import pandas.io.formats.excel

# Leemos ambos archivos y los cargamos en DataFrames
df1 = pd.read_excel("archivo1.xlsx")
df2 = pd.read_excel("archivo2.xlsx")

# Pivotamos ambas tablas
df1 = df1.pivot(index = "Cliente", columns='Fecha', values='Revenue')
df2 = df2.pivot(index = "Cliente", columns='Fecha', values='Revenue')

# Unimos ambos dataframes tomando la columna "Cliente" como clave
merged = pd.merge(df1, df2, right_index =True, left_index = True, how='outer')
merged.sort_index(axis=1, inplace=True)

# Creamos el xlsx de salida
pandas.io.formats.excel.header_style = None

with pd.ExcelWriter("Data.xlsx",
engine='xlsxwriter',
date_format='dd/mm/yyyy',
datetime_format='dd/mm/yyyy') as writer:

merged.to_excel(writer, sheet_name='Sheet1')

存档1:

enter image description here

存档2:

enter image description here

结果:

enter image description here

必要的:

enter image description here

这里是文本数据框:

archivo1:
Fecha Cliente Impresiones Revenue
21/12/17 Jose 12345 $989
21/12/17 Martin 3245 $10
21/12/17 Pedro 645 $879
21/12/17 Esteban 2345 $899
21/12/17 Mauro 654 $98

archivo2:
Fecha Cliente Impresiones Revenue
20/12/17 Esteban 12345 $150
20/12/17 Martin 3245 $20
20/12/17 Pedro 645 $3000
20/12/17 Mauro 2345 $50
20/12/17 Jose 654n $667

最佳答案

您可以使用:

  • 加入两个df
  • reshape 具有类别 ImpresionesRevenue 的列
  • 排序索引,二级后代
  • 通过掩码更改第一级索引并设置为索引

df = (pd.concat([df1,df2])
.set_index(["Cliente",'Fecha'])
.stack()
.unstack(1)
.sort_index(ascending=(True, False)))

m = df.index.get_level_values(1) == 'Impresiones'
df.index = np.where(m, 'Impresiones', df.index.get_level_values(0))
print (df)
Fecha 20/12/17 21/12/17
Esteban $150 $899
Impresiones 12345 2345
Jose $667 $989
Impresiones 654n 12345
Martin $20 $10
Impresiones 3245 3245
Mauro $50 $98
Impresiones 2345 654
Pedro $3000 $879
Impresiones 645 645

关于python - 取多个值用Python Pandas制作表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47958700/

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