数据预处理(python,R matlab 对同一个数据转换)

`这个就是原始数据,加黑框的是一组数据(每组里面3行2列),需要转换成一行六列,并且每组里面2个数据挨在一起

R语言代码“-1

library(dplyr)
library(Hmisc)
lr<-as.data.frame(t(read.csv(“C://Users//yelang//Desktop//matlabyewu//fp//lr.csv”,header = F)))
lr group<cut2(1:nrow(lr),g=6)lrbygroup<split(lr,lr group)
lr_by_group<-lapply(lr_by_group,function(x) select(x,-one_of(‘group’)))
new_lr<-do.call(cbind,lr_by_group)
result_lr1<-as.data.frame(matrix(unlist(new_lr),ncol=6,byrow=T))

R语言代码-2

sj =matrix(NA,1,6) #构建空矩阵
for ( k in 1:7){
for ( p in 1:6){
c= as.matrix(t(df[(3*k-2):(3*k),(2*p-1):(2*p)]))

  dim(c) = c(1,6)  # 2维变1维

  sj = rbind(c,sj)  #数据融合

}
}

2个代码运行结果如下图
这里写图片描述
python 代码语言

lr=pd.read_csv(‘lr.csv’,header=None)
L=[]
a,b=0,1
for x in range(6):
lr_col=lr.ix[:,[a,b]] #取a,b列的所有行
lr_col.columns=[‘A’,’B’] #列重新命名
L.append(lr_col) #每次取出来加在空list里面
a+=2
b+=2
new_lr=pd.concat(L,ignore_index=True)
result=pd.DataFrame(new_lr.stack().values.reshape(42,6),
columns=[‘第’+str(i)+’列’ for i in range(1,7)])
result.head()

python求解结果
这里写图片描述

matlab代码实现
df=[];%输入数据
dt =[]
for i=1:7
for j=1:6
t1 = df(3*i-2:3*i,2*j-1:2*j);
t1 = t1’;%转置
t2 = [t1(1,:),t1(2,:)]; %提取 1,2行的所有列并合并在一起
dt= [dt;t2];
end
end
sj= [dt(:,1),dt(:,4),dt(:,2),dt(:,5),dt(:,3),dt(:,6)] %数据重新组合
matlab运行结果
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u014356002/article/details/53144875