2

我有两个具有相同初始列标题的 .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,

我想将两者合并在一起,以便“名称”列匹配,基本上只需将两个 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
4

1 回答 1

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
于 2013-06-17T07:20:10.920 回答