如何根据列出的索引填充Pandas数据框

时间:2016-01-25 01:42:52

标签: python pandas

我有以下数据框:

     sample1  sample2  sample3
foo       20       10       11
bar       17       13       55

使用以下代码创建:

import pandas as pd
import io

temp=u"""sample1,sample2,sample3
foo,20,10,11
bar,17,13,55"""
df = pd.read_csv(io.StringIO(temp))

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

complete_ids = ["foo","bar","cix","tux"]

我想填写以上数据框,结果如下:

     sample1  sample2  sample3
foo       20       10       11
bar       17       13       55
cix       0         0       0
tux       0         0       0

我该怎么做?

2 个答案:

答案 0 :(得分:2)

使用所需索引创建一个空数据框并加入:

full_index = pd.DataFrame(index=complete_ids)
full_index.join(df).fillna(0)
Out[8]: 
     sample1  sample2  sample3
foo       20       10       11
bar       17       13       55
cix        0        0        0
tux        0        0        0

答案 1 :(得分:1)

使用reindexfillna

In [27]:
complete_ids = ["foo","bar","cix","tux"]
df.reindex(complete_ids).fillna(0)

Out[27]:
     sample1  sample2  sample3
foo       20       10       11
bar       17       13       55
cix        0        0        0
tux        0        0        0