假设我有两个系列:
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
索引是正确的,但值不是。为什么不一样?如果我在创建系列时设置foo
和bar
的索引,则第二种方法有效。
答案 0 :(得分:5)
你可以选择:
pd.DataFrame(
{
"foo": foo.values,
"bar": bar.values
},
index=range(1,4)
)