Cam
Cam

Reputation: 311

Merge two csv files that have a similar row structure but no common index between them

I have two csv files that I want to merge, by adding the column information from one csv to another. However they have no common index between them, but they do have the same amount of rows(they are in order). I have seen many examples of joining csv files based on index and on same numbers, however my csv files have no similar index, but they are in order. I've tried a few different examples with no luck.

mycsvfile1

"a","1","mike"
"b","2","sally"
"c","3","derek"

mycsvfile2

"boy","63","retired"
"girl","55","employed"
"boy","22","student"

Desired outcome for outcsvfile3

"a","1","mike","boy","63","retired"
"b","2","sally","girl","55","employed"
"c","3","derek","boy","22","student"

Code:

import csv
import panada 

df2 = pd.read_csv("mycsvfile1.csv",header=None)
df1 = pd.read_csv("mycsvfile2.csv", header=None)
df3 = pd.merge(df1,df2)

Using

df3 = pd.merge([df1,df2])

Adds the data into a new row which doesn't help me. Any assistance is greatly appreciated.

Upvotes: 0

Views: 344

Answers (2)

BENY
BENY

Reputation: 323276

You do not have any common columns between df1 and df2 , besides the index . So we can using concat

pd.concat([df1,df2],axis=1)

Upvotes: 1

Toby Petty
Toby Petty

Reputation: 4660

If both dataframes have numbered indexes (i.e. starting at 0 and increasing by 1 - which is the default behaviour of pd.read_csv), and assuming that both DataFrames are already sorted in the correct order so that the rows match up, then this should do it:

df3 = pd.merge(df1,df2, left_index=True, right_index=True)

Upvotes: 2

Related Questions