gpt4 book ai didi

python - 从 DataFrame 列构造 Series 时丢失值

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:18 26 4
gpt4 key购买 nike

我有一个 DataFrame td 由以下列组成:

In [111]: td.head(5)
Out[111]:
Date Time Price
0 2015-09-21 00:01:26 4303.00
1 2015-09-21 00:01:33 4303.00
2 2015-09-21 00:02:21 4303.50
3 2015-09-21 00:02:21 4303.50
4 2015-09-21 00:02:31 4303.25

我的目标是制作一个包含日期时间和价格的系列。

我试过:

s = pd.Series(td['Price'], index=pd.to_datetime(td['Date'] + ' ' + td['Time']))

但是得到结果:

>>> s
2015-09-21 00:01:26 NaN
2015-09-21 00:01:33 NaN
2015-09-21 00:02:21 NaN
2015-09-21 00:02:21 NaN
..
2015-09-25 16:59:58 NaN
2015-09-25 16:59:58 NaN
2015-09-25 16:59:58 NaN
2015-09-25 16:59:59 NaN
Name: Price, dtype: float64

“价格”中的所有值都是 NaN。任何暗示我做错了什么?

最佳答案

当从 DataFrame 列创建 Series 并传入索引时,该列将根据新索引重新索引

在你的例子中,新创建的 Datetime 索引中的标签最初都没有用于索引列 td['Price'],因此一系列缺失 (NaN) 返回值。

最简单的解决方案是传入 td['Price'].values 代替:

>>> pd.Series(td['Price'].values, index=pd.to_datetime(td['Date']+' '+td['Time'])
2015-09-21 00:01:26 4303.00
2015-09-21 00:01:33 4303.00
2015-09-21 00:02:21 4303.50
2015-09-21 00:02:21 4303.50
2015-09-21 00:02:31 4303.25
...

使用 td['Price'].values 意味着列中的值位于 NumPy 数组中:它没有索引并且 pandas 不会尝试重新索引这些值。

关于python - 从 DataFrame 列构造 Series 时丢失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com