python对数组进行排序,python分组排序提取每组前10%
我有一个奇怪的python问题。在
该脚本接受两个csv文件,一个包含日期列,另一个包含疯狂的鸡肉片段列。另一个excel文件中有一组名称(子字符串)。
所有的代码做的是一步一步地检查两个列表,并建立一个每个月提到的名字的矩阵。在包含日期和疯鸡的文件中:(日期,代码段的第一列)
条目1:2014年11月21日周日,以此类推。iPhone7的发布是。在
-字符串文件iphone 7
苹果
苹果
创新等
问题是,当我尝试按升序排序时,比如2014年10月,2014年11月,2014年12月等。它只是将月份组合在一起,这不是我想要的导入csv。
从日期时间导入日期时间
file_1=input(输入第一个CSV名称(带有日期和片段的名称): )
file_2=input(输入第二个CSV名称(带有字符串的名称): )
outp=input(输入输出CSV名称: )
file_1_list=[]
head=True
对于csv.reader中的行(open(file_1,encoding=utf-8 ,errors=ignore ):
如果头:
head=False
继续
date=datetime.strptime(row[0])。strip(), %a %b %d %H:%M:%S %Z %Y )
date_str=date.strftime(%b %Y )
file_1_list.append([date_str,row[1])。strip()])
file_2_dict={}
对于csv.reader中的行(open(file_2,encoding=utf-8 ,errors=ignore ):
s=行[0]。条状()
对于文件1列表中的d:
如果s.lower()在d[1]中。下限():
如果s在file_2_dict.keys()中:
如果d[0]在file_2_dict[s]中。密钥():
file_2_dict[s][d[0]]=1
否则:
file_2_dict[s][d[0]]=1
否则:
file_2_dict[s]={
d[0]: 1
}
月=[]
对于file_2_dict.values()中的v:
对于v.keys()中的k:
如果k不在月内:
months.append(k)
months.sort()
行数=[[]个月]
对于file_2_dict.keys()中的k:
tmp=[k]
对于月中的m:
尝试:
tmp.append(文件_ 2 _字典[k][m])
除了:
tmp.append(0)
rows.append(tmp)
打印(“仍在努力,请耐心等待”)
writer=csv.writer(open(outp, w ,encoding=utf-8 ,newline= ))
对于行中的r:
writer.writerow
打印(完成.)
据我所知,我是一个月。排序()没有做到我预想的那样?
我看过这里,他们用attrgetter应用其他函数对数据进行排序。
^{pr2}$
然后排序(l,key=attrgetter(month ))
但我不确定这对我是否有效?
根据我的理解,我分析了日期12-13。我是否错过了顺序数据data=sorted first (data,key=lambda row:datetime . strptime(row[0], % b-%y ))
我刚开始学python。许多事情对我来说是新的。我不知道什么是对什么是错。在
我想要的(当然是正确排序的数据):
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。