首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将两个数据文件与仅在一个数据文件中的索引合并?

如何将两个数据文件与仅在一个数据文件中的索引合并?
EN

Stack Overflow用户
提问于 2017-05-12 05:09:52
回答 2查看 46关注 0票数 0

我创建了两个熊猫数据框架,第一个叫做'dfmas‘的索引’日期‘,然后日期,数据和3个移动平均列;

代码语言:javascript
复制
             OPEN   HIGH    LOW   LAST     ma5     ma8  ma21
Date                                                        
11/23/2009  88.84  89.19  88.58  88.97     NaN     NaN   NaN
11/24/2009  88.97  89.07  88.36  88.50     NaN     NaN   NaN
11/25/2009  88.50  88.63  87.22  87.35     NaN     NaN   NaN
11/26/2009  87.35  87.48  86.30  86.59     NaN     NaN   NaN
11/27/2009  86.59  87.02  84.83  86.53  87.588     NaN   NaN
11/30/2009  87.17  87.17  85.87  86.41  87.076     NaN   NaN
12/1/2009   86.41  87.53  86.17  86.68  86.712     NaN   NaN
12/2/2009   86.68  87.49  86.59  87.39  86.720  87.302   NaN
12/3/2009   87.39  88.48  87.32  88.26  87.054  87.214   NaN
12/4/2009   88.26  90.77  88.00  90.56  87.860  87.471   NaN

第二数据是根据上述数据,观察何时移动平均交叉;

代码语言:javascript
复制
ma = [0,]
ma5Last = ma5[0]
ma8Last = ma8[0]

for ma5Curr, ma8Curr in zip(ma5[1:], ma8[1:]):
    if ma5Curr > ma5Last and ma8Curr > ma8Last:
        ma.append(1)
    elif ma5Curr < ma5Last and ma8Curr < ma8Last:
        ma.append(-1)
    else:
        ma.append(0)
    ma5Last = ma5Curr
    ma8Last = ma8Curr        

maX = pd.DataFrame(ma).astype('float')
maX.columns = ['maX']

在下面称为“maX”;

代码语言:javascript
复制
   maX
0  0.0
1  0.0
2  0.0
3  0.0
4  0.0
5  0.0
6  0.0
7  0.0
8  0.0
9  1.0

但是,我无法合并/减少这两个数据帧。如何将“Date”索引添加到第二个‘maX’数据文件中,然后合并/合并/合并两个数据文件呢?非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-12 05:21:42

这就是你想要的吗?

代码语言:javascript
复制
df['maX'] = maX.maX.values

df
Out[1263]: 
             OPEN   HIGH    LOW   LAST     ma5     ma8  ma21  maX
Date                                                             
11/23/2009  88.84  89.19  88.58  88.97     NaN     NaN   NaN  0.0
11/24/2009  88.97  89.07  88.36  88.50     NaN     NaN   NaN  0.0
11/25/2009  88.50  88.63  87.22  87.35     NaN     NaN   NaN  0.0
11/26/2009  87.35  87.48  86.30  86.59     NaN     NaN   NaN  0.0
11/27/2009  86.59  87.02  84.83  86.53  87.588     NaN   NaN  0.0
11/30/2009  87.17  87.17  85.87  86.41  87.076     NaN   NaN  0.0
12/1/2009   86.41  87.53  86.17  86.68  86.712     NaN   NaN  0.0
12/2/2009   86.68  87.49  86.59  87.39  86.720  87.302   NaN  0.0
12/3/2009   87.39  88.48  87.32  88.26  87.054  87.214   NaN  0.0
12/4/2009   88.26  90.77  88.00  90.56  87.860  87.471   NaN  1.0
票数 1
EN

Stack Overflow用户

发布于 2017-05-12 05:11:16

如果数据文件具有相同的长度,只需为对齐索引从原始的index添加DataFrame

代码语言:javascript
复制
maX = pd.DataFrame(ma, index=df.index).astype('float')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43929702

复制
相关文章

相似问题

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