【发布时间】:2018-05-09 14:45:27
【问题描述】:
我在一个文件夹中有一个 CSV 文件列表(A1.csv、A2.csv........D10.csv),其中包含两列但多行的数据。基本上,我想从所有 csv 文件中提取最后一行和第二列的值 See the picture to understand better
并创建一个数据框,该数据框将在第一列中包含文件名,在第二列中包含提取的值(C)。
现在,我可以通过创建另一个 CSV 文件列表并稍后将它们连接到一个数据框中来实现。
是否可以将 CSV 文件生成的每个数据帧存储到一个列表中,然后将它们连接起来(rbind 在 R 中所做的)。我在 R 中尝试了这段代码,它可以工作。但我想学习 R 或 python 中更有效的方法。(最好是 Python,因为我正在尝试学习 python)
#read through csv files and select the last row 2nd column
m=c(NULL)
aa=c(NULL)
f=list.files(path = getwd(),pattern = '.*csv')
for (g in f){
aa=read.csv(g)
m=tail(aa,1)
q=m[,2]
yy=data.frame(ID=g,Final=q)
write.csv(yy,file = paste("Filename/",g),row.names = F)
}
###concatanate into one file
readFile=list.files(path = getwd(),pattern = "*.csv")
Alldata=lapply(readFile,function(filename){
dummy=read.csv(filename)
return(dummy)
})
FinalFIle=do.call(rbind,Alldata)
write.csv(FinalFIle,file = "FinalFIle.csv",row.names = F)
【问题讨论】:
-
到目前为止你尝试了什么?请发布您的代码。
-
现在你可以在帖子中看到我的代码
标签: python r dataframe concatenation