假设我有两个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中执行此操作。你能告诉我的方式吗
答案 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