私のコードを使用すると、2つのExcelデータベースを1で結合できます。問題は、収益列のみが表示され、列のインプレッションは表示されないことです。より明確にするために、コードと例を残します。私は試してみました:
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')
archivo1:
archivo2:
結果:
必要:
テキストとしてのデータフレームは次のとおりです。
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
次を使用できます。
Impresiones
、Revenue
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
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加