问题:在熊猫中将两个系列组合到一个DataFrame中
我有两个Series,s1并且s2索引相同(非连续)。如何合并s1并s2成为DataFrame中的两列,并将其中一个索引保留为第三列?
回答 0
我认为这concat是个不错的方法。如果存在它们,则将“系列”的名称属性用作列(否则,将它们简单地编号):
In [1]: s1 = pd.Series([1, 2], index=['A', 'B'], name='s1')
In [2]: s2 = pd.Series([3, 4], index=['A', 'B'], name='s2')
In [3]: pd.concat([s1, s2], axis=1)
Out[3]:
   s1  s2
A   1   3
B   2   4
In [4]: pd.concat([s1, s2], axis=1).reset_index()
Out[4]:
  index  s1  s2
0     A   1   3
1     B   2   4
注意:这扩展到2个以上的系列。
回答 1
如果两个索引都相同,为什么不只使用.to_frame?
> = v0.23
a.to_frame().join(b)< v0.23
a.to_frame().join(b.to_frame())回答 2
熊猫会自动将这些通过的序列对齐并创建联合索引。它们在这里恰好是相同的。reset_index将索引移到列。
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
回答 3
示例代码:
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允许您从中创建一个DataFrame,dict以Series作为值,将列名作为键。当找到a Series作为值时,它将使用Series索引作为索引的一部分DataFrame。数据对齐是熊猫的主要特权之一。因此,除非您有其他需求,否则新创建的商品DataFrame具有重复的价值。在上述示例中,data['idx_col']具有与相同的数据data.index。
回答 4
如果我可以回答这个问题。
将系列转换为数据框的基本原理是要了解
从概念上讲,数据框中的每一列都是一个序列。
2.而且,每个列名都是映射到系列的键名。
如果牢记以上两个概念,则可以想到许多将系列转换为数据框的方法。一个简单的解决方案将是这样的:
在这里创建两个系列
import pandas as pd
series_1 = pd.Series(list(range(10)))
series_2 = pd.Series(list(range(20,30)))使用所需的列名创建一个空的数据框
df = pd.DataFrame(columns = ['Column_name#1', 'Column_name#1'])使用映射概念将序列值放入数据框内
df['Column_name#1'] = series_1
df['Column_name#2'] = series_2立即检查结果
df.head(5)回答 5
不确定我是否完全理解您的问题,但这是您想做的吗?
pd.DataFrame(data=dict(s1=s1, s2=s2), index=s1.index)(index=s1.index这里甚至没有必要)
回答 6
基于以下方式的解决方案的简化join():
df = a.to_frame().join(b)回答 7
我使用了pandas将numpy数组或iseries转换为数据框,然后添加并按键将其他附加列作为“预测”。如果您需要将数据框转换回列表,请使用values.tolist()
output=pd.DataFrame(X_test)
output['prediction']=y_pred
list=output.values.tolist()     
	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

