gpt4 book ai didi

python - 如何删除 Pandas 多级数据框中不需要的索引 header

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:53 24 4
gpt4 key购买 nike

我有以下代码:

import pandas as pd
df = pd.DataFrame({
'value': [10,10,12,13,14,15],
'gene_symbol': ['a', 'b', 'c', 'd', 'e', 'f'],
'cellprep': ['xxx', 'xxx', 'yyy', 'zzz', 'xxx', 'zzz'],
'measure': ['tpm','tpm','tpm','fpkm','fpkm','fpkm']})


ndf = df.pivot_table(index=['cellprep','gene_symbol'], columns='measure').fillna(0)
ndf.reset_index(drop=True,level=1)

产生以下数据框:

         value
measure fpkm tpm
cellprep
xxx 0.0 10.0
xxx 0.0 10.0
xxx 14.0 0.0
yyy 0.0 12.0
zzz 13.0 0.0
zzz 15.0 0.0

我想做的是将该数据帧写入 TSV 文件看起来就像这样

cellprep   fpkm   tpm
xxx 0.0 10.0
xxx 0.0 10.0
xxx 14.0 0.0
yyy 0.0 12.0
zzz 13.0 0.0
zzz 15.0 0.0

我怎样才能做到这一点?

最佳答案

您需要将参数 values 添加到 pivot_table :

ndf = df.pivot_table(index=['cellprep','gene_symbol'], 
columns='measure',
values='value').fillna(0)

print (ndf.reset_index(drop=True,level=1))

measure fpkm tpm
cellprep
xxx 0.0 10.0
xxx 0.0 10.0
xxx 14.0 0.0
yyy 0.0 12.0
zzz 13.0 0.0
zzz 15.0 0.0

另一种解决方案是 MultiIndex.droplevel :

ndf = df.pivot_table(index=['cellprep','gene_symbol'], columns='measure').fillna(0)
ndf.columns = ndf.columns.droplevel(0)
print (ndf.reset_index(drop=True,level=1))
measure fpkm tpm
cellprep
xxx 0.0 10.0
xxx 0.0 10.0
xxx 14.0 0.0
yyy 0.0 12.0
zzz 13.0 0.0
zzz 15.0 0.0

关于python - 如何删除 Pandas 多级数据框中不需要的索引 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42712341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com