【发布时间】:2017-02-23 01:17:50
【问题描述】:
我正在使用 python 2.7 获取我的数据框 data 的数字列,并将其作为一个单独的对象(系列),其日期索引是来自 data 的另一列。
new_series = pd.Series(data['numerical_column'] , index=data['dates'])
但是,当我这样做时,我会在系列中得到一堆 NaN 值:
dates
1980-01-31 NaN
1980-02-29 NaN
1980-03-31 NaN
1980-04-30 NaN
1980-05-31 NaN
1980-06-30 NaN
...
为什么我的numerical_data 值会消失?
我意识到我显然可以通过执行以下操作来实现这个目标,尽管我很好奇为什么我最初的方法失败了。
new_series = data.set_index('dates')['numerical_column']
【问题讨论】:
-
jezrael 给出了如何解决问题的完美答案。但只是为了确保您了解尝试失败的原因...如果您将 pandas 对象作为数据参数以及索引参数传递,pandas 会尝试使用索引参数重新索引数据参数。
pd.Series(data['numerical_column'], data['dates'])等价于data['numerical_column'].reindex(data['dates'])当这样说时,你的价值观为什么消失就更明显了。data['numerical_column']没有在data['dates']中指定的索引值。
标签: python python-2.7 pandas dataframe series