我正在尝试根据接受的答案将pandas数据帧转换为系列
为多列转换数据帧为系列然而,我得到NaN在我的整数列'y'。
下面是我的代码:data = [['2021-10-14 18:12:00.000', '22811316'],['2021-10-14 18:42:00.000', '22700704']]
df = pd.DataFrame(data, columns = ['ds', 'y'])
series = pd.Series(df.y, index=df.ds)
印刷系列给我:
ds
2021-10-14 18:12:00.000 NaN
2021-10-14 18:42:00.000 NaN
Name: y, dtype: object
我错过了什么?
我可以在pandas.Series()中找到答案。使用DataFrame Columns创建返回NaN数据条目
技巧是使用:
series = pd.Series(df.y.values, index=df.ds)
如果只取序列df.y
,将得到一个具有新的序列从0、1、…开始的索引
print(df.y)
0 22811316
1 22700704
Name: y, dtype: object
这些索引与您要用作索引的列ds
的值不匹配。
因此,当您使用index=...
创建新系列时,您可能会拥有所有NaN
。
为了将y
列的值放入新的序列中,您必须使用to_numpy()
series = pd.Series(df.y.to_numpy(), index=df.ds)
print(series)
ds
2021-10-14 18:12:00.000 22811316
2021-10-14 18:42:00.000 22700704
dtype: object