将列表附加到 Pandas DataFrame 输出的顶部
Appending a list to the top of Pandas DataFrame output
我将以下文本文件作为输入 (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中有什么方便的方法吗?
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 的相同打开的文件中。
我将以下文本文件作为输入 (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中有什么方便的方法吗?
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 的相同打开的文件中。