我是python和pandas的新手。我无法发现Series转换中的错误

我有一个带有日期列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,而不仅仅是第一个。
我在做什么错的任何线索吗?
提前致谢

最佳答案

编辑:我找到了一种解决方案,不确定是否是最好的解决方案,但它可以工作。我将其张贴在这里,以防它有所帮助或你们中的任何一个找到更好的。

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

关于python - 需要在 Pandas 中使用Series()转换的帮助,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29096759/

10-12 20:19