需要在pandas中使用Series()转换的帮助吗

2024-09-30 00:28:45 发布

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

我对Python和熊猫还不熟悉。我用级数变换做了一些我看不出来的错误

我有一个带有日期列CFB\u 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列索引似乎还可以

我想在timeseries中保留另一个列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,而不仅仅是第一个值。 知道我做错了什么吗? 提前谢谢


Tags: namedfnanheadseriespddtypets
1条回答
网友
1楼 · 发布于 2024-09-30 00:28:45

编辑:我找到了一个解决方案,不确定它是否是最好的,但它是有效的。我把它贴在这里,以防对你们有帮助或者你们中的任何人找到更好的

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

相关问题 更多 >

    热门问题