我有两个具有相同(不连续)指标的级数s1和s2。我如何结合s1和s2是一个DataFrame的两列,并保持一个索引作为第三列?
当前回答
我使用pandas将我的numpy数组或iseries转换为一个数据帧,然后添加和添加额外的列键作为“预测”。如果你需要将数据帧转换回列表,则使用values.tolist()
output=pd.DataFrame(X_test)
output['prediction']=y_pred
list=output.values.tolist()
其他回答
基于join()的解决方案的简化:
df = a.to_frame().join(b)
我不确定我完全理解你的问题,但这是你想做的吗?
pd.DataFrame(data=dict(s1=s1, s2=s2), index=s1.index)
(指数= s1。这里甚至不需要索引)
熊猫将自动对齐这些传递的系列,并创建联合索引 它们在这里是一样的。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
我使用pandas将我的numpy数组或iseries转换为一个数据帧,然后添加和添加额外的列键作为“预测”。如果你需要将数据帧转换回列表,则使用values.tolist()
output=pd.DataFrame(X_test)
output['prediction']=y_pred
list=output.values.tolist()
请允许我回答这个问题。
将序列转换为数据帧的基本原理是理解这一点
1. 在概念层面上,数据帧中的每一列都是一个系列。
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)
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 确定每列中NA值的个数
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 如何结合多个条件子集数据帧使用“或”?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式