我正在尝试使用代码将数据帧转换为系列,简化后的代码如下所示:
dates = ['2016-1-{}'.format(i)for i in range(1,21)]
values = [i for i in range(20)]
data = {'Date': dates, 'Value': values}
df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date'])
ts = pd.Series(df['Value'], index=df['Date'])
print(ts)
但是,打印输出看起来像这样:
Date
2016-01-01 NaN
2016-01-02 NaN
2016-01-03 NaN
2016-01-04 NaN
2016-01-05 NaN
2016-01-06 NaN
2016-01-07 NaN
2016-01-08 NaN
2016-01-09 NaN
2016-01-10 NaN
2016-01-11 NaN
2016-01-12 NaN
2016-01-13 NaN
2016-01-14 NaN
2016-01-15 NaN
2016-01-16 NaN
2016-01-17 NaN
2016-01-18 NaN
2016-01-19 NaN
2016-01-20 NaN
Name: Value, dtype: float64
NaN
来自哪里? DataFrame
对象上的视图是否不是 Series
类的有效输入?
我找到了 to_series
函数 pd.Index
对象,是否有类似的东西 DataFrame
s ?
原文由 deepbrook 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为您可以使用
values
,它将列Value
转换为数组:或者您可以使用:
谢谢 @ajcr 更好地解释为什么你得到
NaN
:When you give a
Series
orDataFrame
column topd.Series
, it will reindex it using theindex
you specify.因为你的DataFrame
列有一个整数index
(不是date index
)你会得到很多缺失值。