Python Pandas 索引 Sorting/Grouping/DateTime
Python Pandas Index Sorting/Grouping/DateTime
我正在尝试使用一分钟数据合并 2 个单独的数据系列来创建比率,然后为一整天的比率创建开盘高低收盘 (OHLC) 文件。我引入了两个时间序列,然后使用 pandas 创建关联的数据帧。时间序列缺少数据,因此我在每个文件中创建一个日期时间变量,然后使用日期时间变量上的 pd.merge 方法合并文件。到目前为止,一切都很好。
接下来,我使用 groupby 按日期对数据进行分组。然后,我将分组数据提供给一个 for 循环,该循环计算 OHLC 并将其提供给每一天的新数据框。但是,新填充的数据框使用日期(来自分组)作为数据框索引并且排序已关闭。索引数据如下所示(即使已排序):
2013 年 1 月 29 日
2014-01-29
2015 年 1 月 29 日
12/2/2013
2014 年 12 月 2 日
简而言之,排序仅按月份进行,而不是将整个日期作为日期进行排序,因此它不是按时间顺序排列的。我的目标是按日期对其进行排序,以便按时间顺序排列。也许我需要在引用索引的数据框中创建一个新列(不确定如何)。或者也许有一种方法可以告诉 pandas 索引是一个日期而不仅仅是一个值?我尝试使用各种排序方法,包括 sort_index 但由于日期是索引并且似乎没有被视为日期,排序函数按月份排序而不考虑年份,因此我的输出文件是乱序的。更笼统地说,我不确定如何 reference/manipulate pandas 数据框中的实际唯一标识符索引,因此任何关联的 material 都会有用。
谢谢
多年后...
这解决了问题。
df 是一个数据框
import pandas as pd
df.index = pd.to_datetime(df.index) #convert the index to a datetime object
df = df.sort_index() #sort the converted
这应该使排序恢复到时间顺序
我正在尝试使用一分钟数据合并 2 个单独的数据系列来创建比率,然后为一整天的比率创建开盘高低收盘 (OHLC) 文件。我引入了两个时间序列,然后使用 pandas 创建关联的数据帧。时间序列缺少数据,因此我在每个文件中创建一个日期时间变量,然后使用日期时间变量上的 pd.merge 方法合并文件。到目前为止,一切都很好。
接下来,我使用 groupby 按日期对数据进行分组。然后,我将分组数据提供给一个 for 循环,该循环计算 OHLC 并将其提供给每一天的新数据框。但是,新填充的数据框使用日期(来自分组)作为数据框索引并且排序已关闭。索引数据如下所示(即使已排序):
2013 年 1 月 29 日 2014-01-29 2015 年 1 月 29 日 12/2/2013 2014 年 12 月 2 日
简而言之,排序仅按月份进行,而不是将整个日期作为日期进行排序,因此它不是按时间顺序排列的。我的目标是按日期对其进行排序,以便按时间顺序排列。也许我需要在引用索引的数据框中创建一个新列(不确定如何)。或者也许有一种方法可以告诉 pandas 索引是一个日期而不仅仅是一个值?我尝试使用各种排序方法,包括 sort_index 但由于日期是索引并且似乎没有被视为日期,排序函数按月份排序而不考虑年份,因此我的输出文件是乱序的。更笼统地说,我不确定如何 reference/manipulate pandas 数据框中的实际唯一标识符索引,因此任何关联的 material 都会有用。
谢谢
多年后...
这解决了问题。
df 是一个数据框
import pandas as pd
df.index = pd.to_datetime(df.index) #convert the index to a datetime object
df = df.sort_index() #sort the converted
这应该使排序恢复到时间顺序