如何使用python将其他csv的列替换为其他csv的列。没有列名

时间:2016-07-18 10:15:55

标签: python python-2.7 pandas

假设我有两个csv

one.csv

1,2,3,4
5,6,7,8

two.csv

6,7,4,5
7,8,10,15

我必须将第一个文件的最后两列替换为第二个文件的最后两列,输出文件应该是

1,2,4,5
5,6,10,15

我想在python中执行此操作。你能告诉我的方式吗

2 个答案:

答案 0 :(得分:0)

这应该有效:

import pandas as pd
df1 = pd.read_csv(csv1,usecols=[1,2,3,4 5,6], names=[1,2,3,4 5,6] header=None)
df2 = pd.read_csv(csv2,usecols=[10,15], names=[10,15] header=None)

df = pd.concat([df1, df2], ignore_index=True)

编辑:回答您的评论尺寸与问题不同:将两个数据框全部加载,在第一个数据框中删除最后两个,然后使用df.ix[row slice, column slice]对第二个数据框进行切片(例如:df.ix[:,'b':] )为了得到你想要的最后[n]列,使用pd.concat进行连接,你应该得到你想要的输出

答案 1 :(得分:0)

试试这个:

In [10]: (pd.read_csv(fn1, header=None, usecols=[0,1])
   ....:    .join(pd.read_csv(fn2, header=None, usecols=[2,3])))
Out[10]:
   0  1   2   3
0  1  2   4   5
1  5  6  10  15

保存回csv:

In [11]: (pd.read_csv(fn1, header=None, usecols=[0,1])
   ....:    .join(pd.read_csv(fn2, header=None, usecols=[2,3]))
   ....:    .to_csv('c:/temp/result.csv', index=False, header=None)
   ....: )

result.csv

1,2,4,5
5,6,10,15