为什么我得到nan时,连接一个数据帧与一个系列



我有一个Pandas Dataframe ('a')和一个Series ('b'),它们都具有时间序列索引(周末除外)。我正在试着把它们连接起来。

它们都以相同的时间点开始,我看到的唯一区别是系列'b'索引比数据帧'a'多3天。

当我尝试连接它们时,我只是在结果数据框('c')中获得所有序列值的nan。我无法理解其中的原因。欣赏输入。

print(a.head(10))
print(a.tail(10))
print(a.info(10))
DCOILWTICO
DATE                  
2022-01-31       89.16
2022-02-01       88.22
2022-02-02       88.16
2022-02-03       90.17
2022-02-04       92.27
2022-02-07       91.25
2022-02-08       89.32
2022-02-09       89.57
2022-02-10       89.83
2022-02-11       93.10
DCOILWTICO
DATE                  
2022-03-29      104.25
2022-03-30      107.81
2022-03-31      100.53
2022-04-01       99.32
2022-04-04      103.29
2022-04-05      101.98
2022-04-06       96.39
2022-04-07       96.05
2022-04-08       98.35
2022-04-11       94.22
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 51 entries, 2022-01-31 to 2022-04-11
Data columns (total 1 columns):
#   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
0   DCOILWTICO  50 non-null     float64
dtypes: float64(1)
memory usage: 2.9 KB
None
print(type(b))
print(b.head(10))
print(b.tail(10))
<class 'pandas.core.series.Series'>
2022-01-31    51.40
2022-02-01    52.68
2022-02-02    53.25
2022-02-03    53.91
2022-02-04    55.10
2022-02-07    55.71
2022-02-08    54.65
2022-02-09    54.76
2022-02-10    54.52
2022-02-11    55.21
Name: close, dtype: float64
2022-04-01    55.72
2022-04-04    55.82
2022-04-05    54.91
2022-04-06    55.30
2022-04-07    55.42
2022-04-08    56.09
2022-04-11    55.32
2022-04-12    55.99
2022-04-13    57.04
2022-04-14    57.11
Name: close, dtype: float64
c = pd.concat([a,b], axis=1)
print(c.head(10))
print(c.tail(10))
print(c.info)
DCOILWTICO  close
2022-01-31       89.16    NaN
2022-02-01       88.22    NaN
2022-02-02       88.16    NaN
2022-02-03       90.17    NaN
2022-02-04       92.27    NaN
2022-02-07       91.25    NaN
2022-02-08       89.32    NaN
2022-02-09       89.57    NaN
2022-02-10       89.83    NaN
2022-02-11       93.10    NaN
DCOILWTICO  close
2022-04-01       99.32    NaN
2022-04-04      103.29    NaN
2022-04-05      101.98    NaN
2022-04-06       96.39    NaN
2022-04-07       96.05    NaN
2022-04-08       98.35    NaN
2022-04-11       94.22    NaN
2022-04-12         NaN    NaN
2022-04-13         NaN    NaN
2022-04-14         NaN    NaN
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 54 entries, 2022-01-31 to 2022-04-14
Freq: B
Data columns (total 2 columns):
#   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
0   DCOILWTICO  50 non-null     float64
1   close       0 non-null      float64
dtypes: float64(2)
memory usage: 1.3 KB
None

需要将Pandas系列'b'的索引转换为日期时间索引。下面是concat步骤之前的必要步骤。

b.index = pd.to_datetime(b.index)

相关内容

最新更新