在Python中按日期对excel文件进​​行排序[关闭]

Posted

技术标签:

【中文标题】在Python中按日期对excel文件进​​行排序[关闭]【英文标题】:Sort an excel file by date in Python [closed] 【发布时间】:2019-05-07 11:42:16 【问题描述】:

我想在python中导入的excel文件中根据日期提取一些数据。 我希望能够给出开始日期和结束日期并获取该特定时期的数据。 我尝试了不同的方法来安装 pandas_datareader 以使用以下代码,但我不能。

data = web.DataReader(dataset,start='', end='')

所以,这是我的代码。

import pandas as pd  
import datetime 

data = pd.read_excel('file.xlsx')  
start = datetime.datetime(2009,1,1)  
end = datetime.datetime(2018,1,1)

#reshape based on date  
set_index = data.set_index('date')

我该如何解决这个问题? :(

Excel file

【问题讨论】:

你能分享几个excel中的行和字段吗? @Harry_pb:我刚刚为您上传了我的文件的屏幕截图。 i.stack.imgur.com/y6o3L.png Sort Pandas Dataframe by Date的可能重复 @Evan:谢谢,但我可以对日期进行排序。我的问题是我不知道如何确定具体的日期期间。例如,在我的数据集中,如果我只想拥有 2010 年到 2018 年的点,我该如何设置这个时间段。 (我的 excel 文件包含 1997 年到 2018 年的数据点)。 嗨@Nicole,你问的是子集。在这种情况下,我推荐df.loc[];我会发布一个答案。 【参考方案1】:
import pandas as pd  
import datetime 

"""
ticker,date,closeunadj
ZF,2018-11-28,9.22
ZF,2018-11-27,9.16
ZF,2018-11-26,9.23
"""

df = pd.read_clipboard(sep=",", parse_dates=["date"]).set_index("date")
df

输出:

           ticker  closeunadj
date                         
2018-11-28     ZF        9.22
2018-11-27     ZF        9.16
2018-11-26     ZF        9.23

然后您可以使用.loc 将索引子集设置为您喜欢的日期范围。

df.loc[(df.index < datetime.datetime(2018, 11, 28)) & (df.index > datetime.datetime(2018, 11, 26))]

输出:

           ticker  closeunadj
date                         
2018-11-27     ZF        9.16

【讨论】:

以上是关于在Python中按日期对excel文件进​​行排序[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何根据python中的多个条件对excel文件进​​行重复数据删除?

从 Reporting Services 导入时在 Excel 中按日期排序

如何在 Pandas 数据框中按行值对日期时间列进行排序?

在python中按日期时间对字典列表进行排序

在Python 3.4中按日期对字典列表进行排序[重复]

如何在 MongoDB 中按日期对集合进行排序?