合并两个.csv文件python-pandas

时间:2013-06-17 06:33:06

标签: python pandas

我有两个具有相同初始列标题的.csv文件:

NAME         RA        DEC  Mean_I1  Mean_I2  alpha_K24 class  alpha_K8 class.1      Av  avgAv
Mon-000101  100.27242   9.608597   11.082   10.034       0.39     I      0.39       I              31.1      31.1
Mon-000171  100.29230   9.522860   14.834   14.385       0.45     I      0.45       I          33.7      33.7

       NAME        Sdev_I1        Sdev_I2
 Mon-000002,         0.023,   0.028000001,
 Mon-000003,   0.016000001,   0.016000001,

我想将两者合并在一起以便'NAME'列匹配,基本上只需将两个Sdev_I1 / Sdev_I2添加到第一个样本的末尾。我试过......

import pandas as pd

df1 = pd.read_csv('h7.csv',sep=r'\s+')
df2 = pd.read_csv('NEW.csv',sep=r'\s+')

df = pd.merge(df1,df2)

df.to_csv('Newh7.csv',index=False)

但是它打印了'NAME'两次,所有内容似乎都是乱序的,并且还添加了很多零。我以为我已经解决了这个问题一段时间了,但我完全失去了它。帮助将不胜感激。感谢。

这是输出文件:

NAME,RA,DEC,Mean_I1,Mean_I2,alpha_K24,class,alpha_K8,class.1,Av,avgAv,Sdev_I1,Sdev_I2

1 个答案:

答案 0 :(得分:2)

似乎你没有删除第二个csv中的逗号符号,你可能会尝试使用转换器来转换它们:

In [81]: converters = {
             'NAME': lambda x:x[:-1], 
             'Sdev_I1': lambda x: float(x[:-1]),     
             'Sdev_I2': lambda x: float(x[:-1])
         }

In [82]: pd.read_csv('NEW.csv',sep=r'\s+', converters=converters)
Out[82]: 
         NAME  Sdev_I1  Sdev_I2
0  Mon-000002    0.023    0.028
1  Mon-000003    0.016    0.016