将列表附加到Pandas DataFrame输出的顶部

时间:2015-01-30 07:45:29

标签: python pandas

我有以下文本文件作为输入(infile.txt

A foo 3.0
A bar 3.1
B foo 3.0
B bar 3.1

使用以下代码

import pandas as pd

infile="infile.txt"
df = pd.io.parsers.read_table(infile,header=None,sep=" ")
df.columns = ['sample','celltype','score']
dfp = df.pivot(index='sample',columns='celltype',values='score')
dfp_prc =  dfp.applymap(lambda x: x * 100)
dfp_prc.to_csv("out.txt",sep=" ", index=True)

它产生这个CSV:

sample bar foo
A 310.0 300.0
B 310.0 300.0

我想要做的是给出一个列表:

mlist = ['sample','XXX','YYY']

我想获得如下所示的最终CSV文件:

sample XXX YYY
sample bar foo
A 310.0 300.0
B 310.0 300.0

在Pandas中进行此操作的便捷方法是什么?

1 个答案:

答案 0 :(得分:3)

to_csv也接受文件名或缓冲区(打开的文件),而不是

dfp_prc.to_csv("out.txt",sep=" ", index=True)

使用

import csv

...

mlist = ['sample','XXX','YYY']
sep = ' '
with open('out.txt', 'w') as f:
    csv.writer(f, delimiter=sep, lineterminator='\n').writerow(mlist)
    dfp_prc.to_csv(f, sep=sep, index=True)

因此,您打开一个文件,使用csv.writer插入一行,然后使用导出DataFrame的相同打开文件。