Python 3.x 在新专栏上发表演讲

Python 3.x 在新专栏上发表演讲,python-3.x,pandas,concat,Python 3.x,Pandas,Concat,为什么我会在“行动”专栏中看到NaN? 对我来说,得到那个结果似乎很奇怪。我尝试使用ignore_index=True,但它有一个freq错误 C H L O OI V WAP ACTION datetime 2017-03-14 00:52:00 8.25 8.25

为什么我会在“行动”专栏中看到NaN? 对我来说,得到那个结果似乎很奇怪。我尝试使用ignore_index=True,但它有一个freq错误

                        C     H     L     O     OI       V   WAP  ACTION
datetime                                                                
2017-03-14 00:52:00  8.25  8.25  8.19  8.21  302.0  1769.0  8.22     NaN
2017-03-13 23:54:00  8.09  8.10  8.09  8.10    6.0    65.0  8.10     NaN
2017-03-14 01:03:00  8.29  8.32  8.28  8.29  175.0  1084.0  8.30     NaN
2017-03-14 00:03:00  8.15  8.15  8.14  8.15   13.0    50.0  8.15     NaN
2017-03-13 23:57:00  8.13  8.13  8.12  8.12    3.0     6.0  8.12     NaN
我想去-

                        C     H     L     O     OI       V   WAP  ACTION
datetime                                                                
2017-03-14 00:52:00  8.25  8.25  8.19  8.21  302.0  1769.0  8.22     100
2017-03-13 23:54:00  8.09  8.10  8.09  8.10    6.0    65.0  8.10     200
2017-03-14 01:03:00  8.29  8.32  8.28  8.29  175.0  1084.0  8.30     300
2017-03-14 00:03:00  8.15  8.15  8.14  8.15   13.0    50.0  8.15     400
2017-03-13 23:57:00  8.13  8.13  8.12  8.12    3.0     6.0  8.12     500

buy_stp = pd.Series([100,200,300,400,500],name= 'ACTION')
print(buy_stp)
df10 = pd.concat([df_concat_results,
                  buy_stp],
                  axis=1,
                  join_axes=[df_concat_results.index])

print(df10)

如果我理解正确,您只需要向数据帧添加一列。如果是这样,这是最简单的方法

df['Action'] = buy_stp

您需要相同的索引-
Series
DataFrame
进行对齐,否则获得
NaN
s:

buy_stp.index = df.index
df['ACTION'] = buy_stp
print (df)
                        C     H     L     O     OI       V   WAP  ACTION
datetime                                                                
2017-03-14 00:52:00  8.25  8.25  8.19  8.21  302.0  1769.0  8.22     100
2017-03-13 23:54:00  8.09  8.10  8.09  8.10    6.0    65.0  8.10     200
2017-03-14 01:03:00  8.29  8.32  8.28  8.29  175.0  1084.0  8.30     300
2017-03-14 00:03:00  8.15  8.15  8.14  8.15   13.0    50.0  8.15     400
2017-03-13 23:57:00  8.13  8.13  8.12  8.12    3.0     6.0  8.12     500
或:

如果通过或将
列表
转换为
numpy数组
,也可以工作,只需要相同长度的
df
购买stp

df['ACTION'] = buy_stp.values
print (df)
                        C     H     L     O     OI       V   WAP  ACTION
datetime                                                                
2017-03-14 00:52:00  8.25  8.25  8.19  8.21  302.0  1769.0  8.22     100
2017-03-13 23:54:00  8.09  8.10  8.09  8.10    6.0    65.0  8.10     200
2017-03-14 01:03:00  8.29  8.32  8.28  8.29  175.0  1084.0  8.30     300
2017-03-14 00:03:00  8.15  8.15  8.14  8.15   13.0    50.0  8.15     400
2017-03-13 23:57:00  8.13  8.13  8.12  8.12    3.0     6.0  8.12     500


这就是我想做的。似乎我的索引需要与耶兹雷尔在下面指出的相同。
df['ACTION'] = buy_stp.values
print (df)
                        C     H     L     O     OI       V   WAP  ACTION
datetime                                                                
2017-03-14 00:52:00  8.25  8.25  8.19  8.21  302.0  1769.0  8.22     100
2017-03-13 23:54:00  8.09  8.10  8.09  8.10    6.0    65.0  8.10     200
2017-03-14 01:03:00  8.29  8.32  8.28  8.29  175.0  1084.0  8.30     300
2017-03-14 00:03:00  8.15  8.15  8.14  8.15   13.0    50.0  8.15     400
2017-03-13 23:57:00  8.13  8.13  8.12  8.12    3.0     6.0  8.12     500
df['ACTION'] = buy_stp.tolist()
print (df)
                        C     H     L     O     OI       V   WAP  ACTION
datetime                                                                
2017-03-14 00:52:00  8.25  8.25  8.19  8.21  302.0  1769.0  8.22     100
2017-03-13 23:54:00  8.09  8.10  8.09  8.10    6.0    65.0  8.10     200
2017-03-14 01:03:00  8.29  8.32  8.28  8.29  175.0  1084.0  8.30     300
2017-03-14 00:03:00  8.15  8.15  8.14  8.15   13.0    50.0  8.15     400
2017-03-13 23:57:00  8.13  8.13  8.12  8.12    3.0     6.0  8.12     500