Я следующее пространство данных, разделенных (mydata.txt
):Использование для цикла для создания панды DataFrame (не-словарь, основанный)
sample1 probe1 gene1 3.23
sample1 probe1 gene2 1.20
sample2 probe1 gene1 2.20
sample2 probe2 gene1 0.12
То, что я хочу сделать, это создать кадр данных, который выглядит как это:
probe gene sample1 sample2
probe1 gene1 3.23 2.20
probe1 gene2 1.20 NA
probe2 gene1 NA 0.12
Тем не менее, вместо того, чтобы преобразовывать данные сразу после прочтения CSV (например, через pandas.DataFrame.from_csv
), Я хотел бы построить этот кадр данных из для цикла. Я попытался это, но не
#!/usr/bin/env python
import pandas as pd
import csv
infile = "mydata.txt"
alltups = []
with open(infile, 'r') as tsvfile:
tabreader = csv.reader(tsvfile, delimiter=' ')
for row in tabreader:
sample, probe, gene, foldchange = row
tup = (sample, [probe,gene,foldchange])
alltups.append(tup)
df = pd.DataFrame.from_items(alltups)
print df
Который производит:
sample1 sample1 sample2 sample2
0 probe1 probe1 probe1 probe2
1 gene1 gene2 gene1 gene1
2 3.23 1.20 2.20 0.12
Что правильный способ сделать это?
Как создать «temp» из цикла for (loopreader)? – neversaint
Вы имеете в виду выход, правильно? – fixxxer
Нет. Я имею в виду 'temp' в вашем коде' temp.pivot_table'. И, наконец, я хотел бы написать файл CSV, как в OP. Поэтому в колонке зонда не должно быть «отверстий». Как я могу это достичь? – neversaint