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