使用两个系列中的给定索引构建pandas数据框

时间:2017-04-26 14:18:00

标签: python pandas

假设我有两个系列:

foo = pd.Series([1,2,3])
bar = pd.Series([7,6,5])

我想从中构建一个数据框:

tmp = pd.DataFrame()
tmp['foo'] = foo
tmp['bar'] = bar

接下来,我设置了新数据框的索引:

tmp.index=range(1,4)

最终,tmp就是这样:

    foo bar
1   1   7
2   2   6
3   3   5

但是,以下快捷方式:

pd.DataFrame(
    {
        "foo": foo,
        "bar": bar
    },
    index=range(1,4)
)

产生以下结果:

    bar     foo
1   6.0000  2.0000
2   5.0000  3.0000
3   nan     nan

索引是正确的,但值不是。为什么不一样?如果我在创建系列时设置foobar的索引,则第二种方法有效。

1 个答案:

答案 0 :(得分:5)

你可以选择:

pd.DataFrame(
    {
        "foo": foo.values,
        "bar": bar.values
    },
    index=range(1,4)
)