首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在熊猫中将两个序列合并为一个DataFrame

在熊猫中将两个序列合并为一个DataFrame
EN

Stack Overflow用户
提问于 2013-08-05 23:37:39
回答 6查看 427.8K关注 0票数 339

我有两个具有相同(非连续)索引的系列s1s2。如何将s1s2组合为DataFrame中的两列,并将其中一个索引保留为第三列?

EN

回答 6

Stack Overflow用户

发布于 2013-08-05 23:53:14

Pandas将自动对齐这些连续传递的参数,并创建联合索引,它们在这里恰好是相同的。reset_index将索引移动到列。

代码语言:javascript
复制
In [2]: s1 = Series(randn(5),index=[1,2,4,5,6])

In [4]: s2 = Series(randn(5),index=[1,2,4,5,6])

In [8]: DataFrame(dict(s1 = s1, s2 = s2)).reset_index()
Out[8]: 
   index        s1        s2
0      1 -0.176143  0.128635
1      2 -1.286470  0.908497
2      4 -0.995881  0.528050
3      5  0.402241  0.458870
4      6  0.380457  0.072251
票数 37
EN

Stack Overflow用户

发布于 2013-08-05 23:50:26

示例代码:

代码语言:javascript
复制
a = pd.Series([1,2,3,4], index=[7,2,8,9])
b = pd.Series([5,6,7,8], index=[7,2,8,9])
data = pd.DataFrame({'a': a,'b':b, 'idx_col':a.index})

Pandas允许您使用Series作为值和列名作为键,从dict创建DataFrame。当它找到一个Series作为值时,它使用Series索引作为DataFrame索引的一部分。这种数据对齐是Pandas的主要好处之一。因此,除非您有其他需求,否则新创建的DataFrame具有重复值。在上面的示例中,data['idx_col']具有与data.index相同的数据。

票数 19
EN

Stack Overflow用户

发布于 2013-08-05 23:51:20

我不确定我是否完全理解你的问题,但这是你想要做的吗?

代码语言:javascript
复制
pd.DataFrame(data=dict(s1=s1, s2=s2), index=s1.index)

(这里甚至不需要index=s1.index)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18062135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档