我是python和pandas的新手。我正在做一些我无法发现的系列转换错误
我有一个数据框,其日期列为CFB_FECHAINICIO,我在新列'fecha'中将其格式化为DateTimeIndex:
df['fecha']= pd.DatetimeIndex(df.CFB_FECHAINICIO)
df.fecha.head()
0 2015-01-01 21:44:01
1 2015-01-02 22:50:50.867000
2 2015-01-05 00:26:04.387000
3 2015-01-07 00:10:03
4 2015-01-07 23:47:18
Name: fecha, dtype: datetime64[ns]
所以我的datetime64列索引似乎没问题。
我想在时间序列中留下另一个专栏,df.MG
ts = pd.Series(df.MG.dropna())
ts.head()
20 4.60
29 4.67
33 4.41
34 4.44
35 4.56
Name: MG, dtype: float64
但是当我使用'fecha'作为索引时,ts值显示为NaN
ts = pd.Series(df.MG.dropna(),index=df.fecha.dropna())
ts.head()
2015-01-02 22:50:50.867000 NaN
2015-01-08 23:08:30 NaN
2015-01-09 21:46:14 NaN
2015-01-14 23:28:13 NaN
2015-01-29 00:24:46 NaN
Name: MG, dtype: float64
我已经确认所有值都显示为NaN,而不仅仅是第一个。 我有什么不对的任何线索? 提前致谢
答案 0 :(得分:1)
编辑:我找到了一个解决方案,不确定它是否是最好的,但它有效。我在这里发布,以防它可以提供帮助,或者你们中的任何一个找到更好的。
df.set_index('fecha',inplace=True)
ts = pd.Series(df.MG.dropna())
ts.head()
fecha
2015-01-29 00:24:46 4.60
2015-02-10 23:24:50 4.67
2015-02-17 00:20:35 4.41
2015-02-18 00:18:38 4.44
2015-02-18 22:58:48 4.56
Name: MG, dtype: float64