python对数组进行排序,python分组排序提取每组前10%

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: