Python Pandas İki Excel Sheetti içersindeki sütunleri birleştirme

Merhaba

pandas ile iki excel sheeti içersinde aynı sütunler ve farklı sutunleri alt alta getirmeye çalışıyorum.Aynı sütun başlıklı ( Order Customer Full Name ) olanı alt alta getiriyor.Fakat Infrastructure Type ile Ürün Tipi sütünlerini alt alta getirmiyor.Ürün Tipi sütünunu ayrı ütün olarak ekliyor.

Infrastructure Type Order Customer Full Name Ürün Tipi gibi

import pandas as pd

f1 = pd.read_excel ( ‘file1.xlsx’, sheet_name=‘TUM AKISLAR’ )
f2 = pd.read_excel ( ‘file2.xlsx’, sheet_name=‘Devam Eden Akislar Raporu’ )

robot = [‘Infrastructure Type’,‘Order Customer Full Name’]
emptor = [‘Ürün Tipi’,‘Order Customer Full Name’]

df1 = pd.DataFrame(f1, columns=robot)
df2 = pd.DataFrame(f2, columns=emptor)

df= pd.concat([df1,df2])

xlwriter = pd.ExcelWriter(‘sss.xlsx’)
df.to_excel(xlwriter, sheet_name=‘All Sheet’, index=False)
xlwriter.close()

Merhaba,

Kodunuzu, kod görünümünde paylaşmanızı tavsiye ederim, böylece incelenmesi daha kolay olacaktır.

concat yerine, array’leri numpy ile tek bir array’e çevirebilirsiniz. Çünkü excel dosyalarında farklı sütunlarda isimler var ve concat farklı isme sahip sütunun değerlerini, altına gelmesini istediğiniz sütuna yazmayacaktır.

import numpy as np
import pandas as pd

f1 = pd.read_excel("file1.xlsx", sheet_name="TUM AKISLAR")
f2 = pd.read_excel("file2.xlsx", sheet_name="Devam Eden Akislar Raporu")

robot = ["Infrastructure Type","Order Customer Full Name"]
emptor = ["Ürün Tipi", "Order Customer Full Name"]

df1 = pd.DataFrame(f1, columns=columns1)
df2 = pd.DataFrame(f2, columns=columns2)

df = pd.DataFrame(
    np.array([i for i in df1.values] + [i for i in df2.values]), 
    columns=columns1  # veya columns2. Hangisini isterseniz.
)
xlwriter = pd.ExcelWriter("sss.xlsx")
df.to_excel(xlwriter, sheet_name="All Sheet", index=False)
xlwriter.close()

Eğer kolon adları sizin için bir önem arzetmiyorsa kolon isimlerini df.rename metoduyla aynı olacak şekilde düzenleyip alt alta getirebilirsiniz bu sizin için daha kolay olur.

Teşekkür ederim.

aşağıdaki gibi kod çalıştı.

import numpy as np
import pandas as pd

f1 = pd.read_excel(“file1.xlsx”, sheet_name=“TUM AKISLAR”)
f2 = pd.read_excel(“file2.xlsx”, sheet_name=“Devam Eden Akislar Raporu”)

robot = [“Infrastructure Type”,“Master Work Flow Number”,“Sub Work Flow Number”,“Contract Detail Number”,
“Order Customer Full Name”,“Location Customer Full Name”,“Maximo ID”,“Maximo Status”,“Status Date”,
“SubStatus Description”,“Tobecancel”,“Fiber Request ID”,“Maximo Start Date”,“Owner Group”,“Aski Nedeni”,
“Region”,“Order Type”,“Master Work Flow Start Date”,“Master Dur. Days”,“Master dur. Days A.”,
“Order Customer Code”,“Sub Work Flow Start Date”,“Year”,“Month”,“WF Duration (days)”,“WF Duration Interval”,
“Sub Work Flow Name”,“Step Status Group”,“Suspend Reason”,“Offer Name”,“Project Manager”,
“Contract Customer Account Manager”,“Contract Customer Sales Sector Group”,“Step Name”,
“Assigned User Position”,“Assigned User Full Name”,“Step Start Time”,“Step Duration (days)”,
“StepDuration Interval”,“Location Customer Delivery City”,“Location Customer Delivery Address”,
“Siparis Durumu”, “BHM”,“Suspend - Sorumlu Ekip”,“Ekip Bilgisi”,“Vergi Numarası”,“Maximo Dur.Days”,“Hız”,
“Hizmet”,“SLA”]

emptor = [“Ürün Tipi”,“Master Work Flow Number”,“Sub Work Flow Number”,“Contract Detail Number”,
“Order Customer Full Name”,“Location Customer Full Name”,"","","","","","","","","","",“Order Type”,
“Master Work Flow Start Date”, “Ana Akış Bekleme Süresi”,“Ana Akış Bekleme Aralığı”,“Order Customer Code”,
“Sub Work Flow Start Date”,“YIL”,“Tarih”,“Akış Bekleme Süresi”, “Akış Bekleme Aralığı”,“Sub Work Flow Name”,
“Step Status Group”,“Suspend Reason.”,“Offer Name”,“Order Customer Project Manager”,
“Contract Customer Account Manager”,“Sektör Bazlı”,“Step Name”,“Assigned User Position”,
“Assigned User Full Name”, “Step Start Time”,“Adım Bekleme Süresi”,“Adım Bekleme Aralığı”,
“Location Customer Delivery City”,"","","","",“Suspend Ekip Bilgisi”,“Vergi Numarası”,"",“Hız”,“Hizmet”,“SLA”]

df1 = pd.DataFrame(f1, columns=robot)
df2 = pd.DataFrame(f2, columns=emptor)

df = pd.DataFrame(
np.array([i for i in df1.values] + [i for i in df2.values]),
columns=robot) # veya columns2. Hangisini isterseniz.

df.reset_index ( inplace=True )

df = df.rename ( columns=dict ( index=‘No’ ) )

xlwriter = pd.ExcelWriter(“sss.xlsx”)
df.to_excel(xlwriter, sheet_name=“All Sheet”, index=False)
xlwriter.close()