查看原文
其他

文件太多乱乱的?合并一下吧!

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:李钊颖

文字编辑:朱巧利

技术总编:张计宝

导读


如果我们想将一大堆“.csv”数据全部导入到stata里面,要怎么做呢?当然,我们可以先将所有的“.csv”文件转化为“.dta”文件,然后使用append命令进行合并,但好像有点麻烦。其实我们可以利用csvconvert命令一键生成“.dta”文件,csvconvert命令将一组“.csv”文件导入到一个文件中,该文件以“.dta”格式保存,可以立即读到Stata中,很是方便。我们一起来了解下这个命令吧!


一、csvconvert命令的语法及常用选项


       csvconvert,顾名思义是将“.csv”格式的文件转换为别的格式。该命令是外部命令,需要通过“ssc install csvconvert”安装之后才能使用。命令的基本语法为:

csvconvert input_directory , replace [options]
在csvconvert命令时,必须指定replace选项才能完成转换过程。这里注意需要合并的“.csv”文件必须放在同一个目录下,input_directory就是存储.csv文件的目录。下面解释一下各个选项的意思:

output_file(file_name):设置输出的文件名。是“.dta”文件的名称,默认设置是“output.dta”。

output_dir(output_directory):设置输出路径。是保存输出文件的目录,默认是输入文件的路径。

input_file(.csv file list):选择要合并的文件。就是放在input_directory中要转换的文件,我们要为列表中包含的每个文件名指定扩展名“.csv”。如果没有指定该选项,csvconvert命令将把存储在input_directory中的所有“.csv”文件都当成合并文件。

 

二、csvconvert命令的用法示例


这个命令适用于我们有多个数据文件,这些文件的不同之处在于具有时间周期性的变量,比如说year变量,此时csvconvert命令就能很方便的把多个文件合并为一个dta文件。下面我们举个小例子来熟悉一下这个命令。

首先我们清空内存,看一下该文件夹下待合并的csv文件:

clear alldir E:\推文\csvconvert\worldbank\*.csv



下面的命令创建output.dta,并将其保存在目录中:

csvconvert E:\推文\csvconvert\worldbank, replace



默认情况下,csvconvert命令会创建一个新变量“_csvfile”,该变量包含原“.csv”文件的名称。在转换过程的末尾,csvconvert会显示一条消息,其中包含“.dta”文件中包含的原始.csv文件的编号(上图中红框中的4表示目录下的四个文件都已成功转换)。这可以帮助我们再次检查所有“.csv”文件是否成功转换为“.dta”文件。查看原路径,可以发现路径下面多了output.dta文件。



输入note显示已转换的csv文件的完整列表,这些文件包含在output.dta文件中:

note



合并后的数据按年份降序排列:



下面的命令指定合并文件的名称为“wb_data”。并将其保存在缺省目录下的数据集中:

csvconvert E:\推文\csvconvert\worldbank, replace output_file(wb_data.dta) output_dir(E:\推文\csvconvert\worldbank)

当然我们也可以选择不把全部文件合并,input_file选项可以帮我们只把选定文件进行合并。下面的命令只合并选定的csv文件“wb2008.csv”和“wb2009.csv”,结果如图所示:

csvconvert E:\推文\csvconvert\worldbank, replace input_file(wb2008.csv wb2009.csv)


以上就是csvconvert命令的介绍啦,这些小命令用对了可以大大简化我们的工作,大家快动手操作一下吧!






对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!
往期推文推荐
线性回归的正则化 ——岭回归与LASSO回归
Pandas中节约空间的小tip—categorical类型
Ftools命令组之flevelsof命令介绍
疫情下的家庭关系|《请回答1988》影评爬取
教你把Python当美图秀秀用(二)
自己动手进行线性回归计算
personage与年龄
原来这才是查看盲评结果的正确方式
教你把Python当美图秀秀用(一)
用数据透视表剖析泰坦尼克号乘客数据
读入文本文档,intext来帮忙
matchit——解锁文本相似度的钥匙
基于广义线性模型的机器学习算法——线性回归
听说你会魔法?
dummieslab——从分类变量到虚拟变量的“一步之遥”
线上Python课程都面向哪些方向?
子类与父类

关于我们



微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。
投稿邮箱:statatraining@163.com
投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存