首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python:重新排序包含多个条目的列表

Python:重新排序包含多个条目的列表
EN

Stack Overflow用户
提问于 2019-03-05 02:21:02
回答 1查看 76关注 0票数 0

我有一个python格式的列表,其中包含10,000+温度条目,但没有相应的日期。基本上,前12个条目是10月1日,11月1日,...9月1日。以下12个条目是10月2日,11月2日,...9月2日。这种情况一直持续到第31天。

这项计划亦会重复20年(即1980至2000年)

相反,我想以一种更合理的格式来组织这些值...10月1日、2日、3日等

有什么简单的方法可以做到这一点吗?我尝试过循环,但无济于事。我是编程新手,所以越简单越好。

代码语言:javascript
复制
###Code to getting the list:###
rawdata = open('')
data = csv.reader(rawdata)
listoflists = []
for i in e1:
    listoflists.append(i)
    print(i)

temperaturelist = []

for sublist in listoflists:
    for item in sublist:
        temperaturelist.append(item)

for i in temperaturelist:
    if i < 13:
        newlist = ...

抱歉,这可能是一个具有多个问题的大问题,而不是编码"x“的更优方式。

EN

回答 1

Stack Overflow用户

发布于 2019-03-05 04:09:59

你有没有注意到欧洲印刷“10.2,1980”的方式是"2/10/1980"?您提到的日期顺序就是这些日期的字典顺序。

如果是这种情况,您可以尝试执行以下操作:

首先生成所有日期(您必须确保您的数据是这些天的所有数据,不多也不少):

代码语言:javascript
复制
import datetime
d0 = datetime.date(1980, 1, 1)
dN = datetime.date(2000, 12, 31)
delta = datetime.timedelta(days = 1)

dates = []
printdates = []
d = d0
while d <= dN:
    dates.append(d)
    printdates.append("{d.day}/{d.month}/{d.year}".format(d=d))
    d = d + delta

然后使用pandas按字典顺序对它们进行排序:

代码语言:javascript
复制
import pandas as pd
date_df = pd.DataFrame({'print_date': printdates,
                        'date': dates}
                      ).sort_values("print_date")

现在转到您的CSV数据。使用pandas加载它们,分配日期列,然后按实际日期排序:

代码语言:javascript
复制
csv_df = pd.read_csv(...)
csv_df["print_date"] = date_df["print_date"]
csv_df["date"] = date_df["date"]
csv_df = csv_df.sort_values("date")

我没有测试这些代码。可能会有bug。但我希望你能理解这个概念。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54989272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档