我有12个.csv
文件,其中包含提取的分类名称及其频率(每个名称提取的次数)。我已经创建了一个主.txt
文件,列出了在12个文件中至少发现过一次的所有独特分类群。我需要制作一个csv
格式的连接表,其中行的头是每个文件的名称,列的头是主.txt
文件中列出的所有唯一分类单元。该表必须用每个.csv
输入文件中每个分类群旁边的频率填充。尽管主列表包含12个文件中可能的所有分类群,但并非所有文件都包含所有分类群。当分类单元丢失时,我需要放置一个“0”。你知道吗
.csv
输入:
$cat file_1
1,Salmo salar
12,Solanum pennellii
18,Staphylococcus xylosus
...
$cat file_2
1,Salmo salar
14,Staphylococcus xylosus
123,Strongyloides stercoralis
...
$cat file_3
123,Solanum pennellii
11,Staphylococcus xylosus
41,Strongyloides stercoralis
...
.txt
主列表:
$cat master
Salmo salar
Solanum pennellii
Staphylococcus xylosus
Strongyloides stercoralis
...
.csv
输出(我需要的):
Sample,Salmo salar,Solanum pennellii,Staphylococcus xylosus,Strongyloides stercoralis
File_1,1,12,18,0
File_2,1,0,14,123
File_3,0,123,11,41
我以前尝试过在没有主列表的情况下编写一个小python脚本,并使用.tsv
输入文件,其中包含分类群的重复名称,而不是频率。我无法获得一个表来显示每个文件丢失的分类群,所以我决定创建一个主列表并折叠输入文件。我对python很陌生,所以任何帮助都将不胜感激。你知道吗
对于那些即将
awk
的人,我们向你们致敬!你知道吗awk
是为这种处理而创建的。你知道吗试一试:
测试:
尝试使用csv.Dictwriter文件。你知道吗
你根本不需要主文件。我只是动态生成最终的表。假设将输入文件名作为命令行参数传递给Python脚本:
现在有了
data
,这就是输出文件所需的一切。然后可以这样打印:相关问题 更多 >
编程相关推荐