我现在在做数据处理,这是一个csv文件,想用实现如图的效果:
第2列的1对应第4列1101,那么在第五列标记为1
第2列的2对应第4列1102,那么在第五列标记为2
第2列的3对应第4列1101,那么在第五列标记为1
其他情况标记错的,那么在第五列标记为0
请大神帮忙使用pathon如何实现这样的效果。
# -*- coding: utf-8 -*-
import numpy as np
A = np.loadtxt('d:\\test.cvs', delimiter = ',', usecols = (3, 4))
rowcount = np.shape(A)[0]
B = np.zeros(rowcount).reshape(4, 1)
for i in range(rowcount):
if A[i, 0] == 1101 and (A[i, 1] == 1 or A[i, 1] == 3):
B[i, 0] = 1
elif A[i, 0] == 1102 and A[i, 1] == 2:
B[i, 0] = 2
C = np.hstack((A, B))
np.savetxt('D:\\result.cvs', C, delimiter = ',')
我试着用pandas写了,在脚本也能都出来,但是怎么保存到csv里第五列呢?
@ITCSJ: 我不熟悉这个,我熟悉numpy,numpy是创建一个二维数组(或矩阵),把这个数组保存成文件就可以,如果保存到第5列,那么需要创建一个n*5的二维数组,把结果放到第5列后保存成文件就好了。你用的这个也应该有这样的方法吧,比如类似save_svc这样的方法
@会长: 对的,我们的思路是一样的,只是用的函数库不一样,我再试试,谢谢你