为什么我在合并两个panda数据帧时会得到NaN值>

2024-10-03 00:20:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了2个数据帧。一种叫做“DFMA”,包含一组收盘价和移动平均线

            PX_OPEN  PX_HIGH  PX_LOW  PX_LAST      ma5        ma8        ma21
Date                                                                         

12/19/2016   117.90   118.03  116.55   117.09  117.086  116.22625  114.231905
12/20/2016   117.09   118.24  116.99   117.86  117.620  116.70375  114.567143
12/21/2016   117.86   118.07  117.11   117.55  117.722  116.98250  114.872381
12/22/2016   117.55   117.88  117.27   117.54  117.594  117.29750  115.111429

然后我创建了另一个panda数据框“ma5xdf”,它显示了5天移动平均线何时上升(+1)和下跌(-1)或水平(0)

^{pr2}$

我想把这两个数据帧合并成1,但是我得到了5天上升/下降的NaN值,也在原始的dfmas数据的末尾。我在使用

dfx = pd.concat([dfmas, ma5xdf], axis =1) 
print(dfx.tail(4))

我得到了

      PX_OPEN  PX_HIGH  PX_LOW  PX_LAST  ma5  ma8  ma21  ma5x
1845      NaN      NaN     NaN      NaN  NaN  NaN   NaN   1.0
1846      NaN      NaN     NaN      NaN  NaN  NaN   NaN   1.0
1847      NaN      NaN     NaN      NaN  NaN  NaN   NaN   1.0
1848      NaN      NaN     NaN      NaN  NaN  NaN   NaN   1.0 

如果有任何代码方面的帮助,我们将不胜感激,谢谢!在


Tags: 数据opennanlowlasthighpx平均线
1条回答
网友
1楼 · 发布于 2024-10-03 00:20:12

如果您只想在第一个数据帧(dfmas)的结尾添加第二个数据帧(ma5xdf)的列,可以这样做。在

ma5xdf['ma5x'] = ma5xdf['ma5x'].astype(float)
dfmas['ma5x'] = ma5xdf['ma5x']

简单而精确的解决方案。在

我看到您的索引是为dfmas中的date列设置的。在

所以另一种方法。在

^{pr2}$

相关问题 更多 >