我有一个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日等
有什么简单的方法可以做到这一点吗?我尝试过循环,但无济于事。我是编程新手,所以越简单越好。
###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“的更优方式。
发布于 2019-03-05 04:09:59
你有没有注意到欧洲印刷“10.2,1980”的方式是"2/10/1980"?您提到的日期顺序就是这些日期的字典顺序。
如果是这种情况,您可以尝试执行以下操作:
首先生成所有日期(您必须确保您的数据是这些天的所有数据,不多也不少):
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按字典顺序对它们进行排序:
import pandas as pd
date_df = pd.DataFrame({'print_date': printdates,
'date': dates}
).sort_values("print_date")
现在转到您的CSV数据。使用pandas加载它们,分配日期列,然后按实际日期排序:
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。但我希望你能理解这个概念。
https://stackoverflow.com/questions/54989272
复制相似问题