Hello Guys, How are you all? Hope You all Are Fine. Today I get the following error **Pandas concat yields Value: Plan shapes are not aligned** **in python**. So Here I am Explain to you all the possible solutions here.

Without wasting your time, Let’s start This Article to Solve This Error.

Table of Contents

## How Pandas concat yields Value: Plan shapes are not aligned Error Occurs?

Today I get the following error **Pandas concat yields Value: Plan shapes are not aligned** **in python**.

## How To Solve Pandas concat yields Value: Plan shapes are not aligned Error ?

**How To Solve Pandas concat yields Value: Plan shapes are not aligned Error ?**To Solve Pandas concat yields Value: Plan shapes are not aligned Error Wrote a small function to concatenate duplicated column names. Function cares about sorting if original dataframe is unsorted, the output will be a sorted one.

**Pandas concat yields Value: Plan shapes are not aligned**To Solve Pandas concat yields Value: Plan shapes are not aligned Error Wrote a small function to concatenate duplicated column names. Function cares about sorting if original dataframe is unsorted, the output will be a sorted one.

## Solution 1

In case it helps, I have also hit this error when I tried to concatenate two data frames (and as of the time of writing this is the only related hit I can find on google other than the source code).

I don’t know whether this answer would have solved the OP’s problem (since he/she didn’t post enough information), but for me, this was caused when I tried to `concat`

dataframe `df1`

with columns `['A', 'B', 'B', 'C']`

(see the duplicate column headings?) with dataframe `df2`

with columns `['A', 'B']`

. Understandably the duplication caused pandas to throw a wobbly. Change `df1`

to `['A', 'B', 'C']`

(i.e. drop one of the duplicate columns) and everything works fine.

## Solution 2

Wrote a small function to concatenate duplicated column names. Function cares about sorting if original dataframe is unsorted, the output will be a sorted one.

def concat_duplicate_columns(df): dupli = {} # populate dictionary with column names and count for duplicates for column in df.columns: dupli[column] = dupli[column] + 1 if column in dupli.keys() else 1 # rename duplicated keys with °°° number suffix for key, val in dict(dupli).items(): del dupli[key] if val > 1: for i in range(val): dupli[key+'°°°'+str(i)] = val else: dupli[key] = 1 # rename columns so that we can now access abmigous column names # sorting in dict is the same as in original table df.columns = dupli.keys() # for each duplicated column name for i in set(re.sub('°°°(.*)','',j) for j in dupli.keys() if '°°°' in j): i = str(i) # for each duplicate of a column name for k in range(dupli[i+'°°°0']-1): # concatenate values in duplicated columns df[i+'°°°0'] = df[i+'°°°0'].astype(str) + df[i+'°°°'+str(k+1)].astype(str) # Drop duplicated columns from which we have aquired data df = df.drop(i+'°°°'+str(k+1), 1) # resort column names for proper mapping df = df.reindex_axis(sorted(df.columns), axis = 1) # rename columns df.columns = sorted(set(re.sub('°°°(.*)','',i) for i in dupli.keys())) return df

**Summery**

It’s all About this issue. Hope all solution helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which solution worked for you? Thank You.

**Also, Read**