我有以下文本文件作为输入(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中进行此操作的便捷方法是什么?
答案 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的相同打开文件。