I have a code in which I have tried to merge several csv files using pd.concat(), the issue I have is that the concatenated file has the last column of file1.csv and the first column of file2.csv merged in a single cell (and same for file.csv and file3.csv) as illustrated below. I would appreciate any help in this regard.
file1 = 'file1.csv'
file2 = 'file2.csv'
file3 = 'file3.csv'
df1 = pd.read_csv( file1, sep="\n" ,na_values='NA')
df2 = pd.read_csv( file2, sep="\n" ,na_values='NA')
df3 = pd.read_csv( file3, sep="\n" ,na_values='NA')
BigDf = pd.concat([df1, df2,df3], axis=1)
BigDf.to_csv('final.csv', sep="\t", index = False)
eg. file1.csv is
A B C
0 False False False
1 True True False
2 False False False
3 False False False
file2.csv is
D E F
0 False False False
1 True True False
2 False False False
3 False False False
the merged file should be
A B C D E F
0 False False False False False False
1 True True False True True False
2 False False False False False False
3 False False False False False False
instead it is
A B CD E F
0 False False FalseFalse False False
1 True True FalseTrue True False
2 False False FalseFalse False False
3 False False FalseFalse False False
concat is working as expected for me, see the code below,
import pandas as pd
df1 = pd.read_clipboard()
df1
A B C
0 False False False
1 True True False
2 False False False
3 False False False
df2 = pd.read_clipboard()
df2
D E F
0 False False False
1 True True False
2 False False False
3 False False False
pd.concat([df1, df2], axis=1)
A B C D E F
0 False False False False False False
1 True True False True True False
2 False False False False False False
3 False False False False False False
df_new = pd.concat([df1, df2], axis=1)
df_new
A B C D E F
0 False False False False False False
1 True True False True True False
2 False False False False False False
3 False False False False False False
df_new.to_csv("test.csv", sep='\t', index=False)
df_new_loaded = pd.read_csv("test.csv", sep='\t')
df_new_loaded
A B C D E F
0 False False False False False False
1 True True False True True False
2 False False False False False False
3 False False False False False False
df_new_loaded.columns
Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
df_new_loaded
A B C D E F
0 False False False False False False
1 True True False True True False
2 False False False False False False
3 False False False False False False
You can try
pd.concat([df1, df2], axis='col')
But it may give you the same result
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.