Проблема
У меня есть несколько файлов результатов, которые я хотел бы перенести и добавить в файл CSV, но также принять входное имя файла в качестве ячейки в CSV.Однако в начале файла результатов есть несколько строк, которые меня не интересуют.
Входные данные
Вот пример входных данных, я толькоЯ хочу получить столбец 'Codon' и столбец 'Fraction' в моем выводе:
#CdsCount: 1727
#Coding GC 31.31%
#1st letter GC 40.68%
#2nd letter GC 30.71%
#3rd letter GC 22.53%
#Codon AA Fraction Frequency Number
GCA A 0.491 26.008 13458
GCC A 0.074 3.946 2042
GCG A 0.073 3.855 1995
GCT A 0.362 19.202 9936
TGC C 0.269 3.596 1861
TGT C 0.731 9.773 5057
GAC D 0.282 16.152 8358
GAT D 0.718 41.196 21317
GAA E 0.878 67.661 35011
GAG E 0.122 9.388 4858
TTC F 0.242 8.942 4627
TTT F 0.758 28.028 14503
GGA G 0.317 19.627 10156
GGC G 0.133 8.229 4258
GGG G 0.097 6.020 3115
GGT G 0.453 28.034 14506
CAC H 0.487 7.019 3632
CAT H 0.513 7.384 3821
ATA I 0.418 39.884 20638
ATC I 0.133 12.649 6545
ATT I 0.449 42.795 22144
AAA K 0.869 80.385 41595
AAG K 0.131 12.113 6268
CTA L 0.049 4.383 2268
CTC L 0.035 3.200 1656
CTG L 0.012 1.046 541
CTT L 0.144 13.022 6738
TTA L 0.601 54.222 28057
TTG L 0.159 14.336 7418
ATG M 1.000 25.150 13014
AAC N 0.252 18.616 9633
AAT N 0.748 55.285 28607
CCA P 0.388 12.142 6283
CCC P 0.095 2.968 1536
CCG P 0.089 2.800 1449
CCT P 0.428 13.398 6933
CAA Q 0.796 16.404 8488
CAG Q 0.204 4.207 2177
AGA R 0.595 17.335 8970
AGG R 0.186 5.425 2807
CGA R 0.089 2.582 1336
CGC R 0.008 0.244 126
CGG R 0.022 0.638 330
CGT R 0.100 2.916 1509
AGC S 0.087 5.336 2761
AGT S 0.226 13.818 7150
TCA S 0.325 19.863 10278
TCC S 0.081 4.957 2565
TCG S 0.054 3.287 1701
TCT S 0.226 13.808 7145
ACA T 0.401 20.599 10659
ACC T 0.141 7.236 3744
ACG T 0.108 5.570 2882
ACT T 0.349 17.932 9279
GTA V 0.422 26.656 13793
GTC V 0.050 3.160 1635
GTG V 0.092 5.834 3019
GTT V 0.435 27.444 14201
TGG W 1.000 5.858 3031
TAC Y 0.310 13.369 6918
TAT Y 0.690 29.729 15383
TAA * 0.908 3.030 1568
TAG * 0.052 0.172 89
TGA * 0.041 0.135 70
Желаемый вывод
Вот пример вывода, который я хотел бы получить,с именем входного файла в качестве другого столбца, так как я собираюсь выполнить это тысячи раз, код должен быть максимально эффективным и добавляться в один файл результатов:
+----------------------------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+-----+------+------+-------+-------+-------+
| | GCA | GCC | GCG | GCT | TGC | TGT | GAC | GAT | GAA | GAG | TTC | TTT | GGA | GGC | GGG | GGT | CAC | CAT | ATA | ATC | ATT | AAA | AAG | CTA | CTC | CTG | CTT | TTA | TTG | ATG | AAC | AAT | CCA | CCC | CCG | CCT | CAA | CAG | AGA | AGG | CGA | CGC | CGG | CGT | AGC | AGT | TCA | TCC | TCG | TCT | ACA | ACC | ACG | ACT | GTA | GTC | GTG | GTT | TGG | TAC | TAT | TAA | TAG | TGA |
+----------------------------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+-----+------+------+-------+-------+-------+
| GCF_000006175.1_ASM617v2_genomic.codon | 0.491 | 0.074 | 0.073 | 0.362 | 0.269 | 0.731 | 0.282 | 0.718 | 0.878 | 0.122 | 0.242 | 0.758 | 0.317 | 0.133 | 0.097 | 0.453 | 0.487 | 0.513 | 0.418 | 0.133 | 0.449 | 0.869 | 0.131 | 0.049 | 0.035 | 0.012 | 0.144 | 0.601 | 0.159 | 1 | 0.252 | 0.748 | 0.388 | 0.095 | 0.089 | 0.428 | 0.796 | 0.204 | 0.595 | 0.186 | 0.089 | 0.008 | 0.022 | 0.1 | 0.087 | 0.226 | 0.325 | 0.081 | 0.054 | 0.226 | 0.401 | 0.141 | 0.108 | 0.349 | 0.422 | 0.05 | 0.092 | 0.435 | 1 | 0.31 | 0.69 | 0.908 | 0.052 | 0.041 |
+----------------------------------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-----+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+------+-------+-------+-----+------+------+-------+-------+-------+
Мой код на данный момент:
import pandas as pd
import sys
outfile = open(sys.argv[1], 'r')
list = []
for line in outfile:
if "codon" in line.lower():
list.append(line)
for line in outfile:
list.append(line)
df = pd.DataFrame({str(outfile):list})
df.to_csv('testresults.csv')
Это получает соответствующие строки из файла результатов и преобразует результаты в CSV с именем файла в качестве столбца, хотя и не транспонирует результатыи формат CSV является неправильным.