统计连续出现相同数值的次数应该怎样做呢?
读取csv文件,根据‘MM’列判断,若该列连续出现 3次'4M'则判定为"one year" ,选择 one year出现的开始时间存储到列表 YearList 中,最后,将列表 YearList保存到文本文件“YearDate.txt”中。 把样本数据发下 Data MM001 4M
002 4M
003 4M
004 2M
005 3M
006 4M
007 4M
008 4M
009 4M
010 4M
011 1M
012 3M 大概是这样,只取了前面一小部分
艾依古 发表于 2020-6-27 17:27
Data MM
001 4M
002 4M
data 是时间? 嗯嗯,是滴 题目里给的提示案例有这个。
参考案例:计算一个列表中连续相同的元素个数,并返回连续出现 4 次及以上
的 1 所在的开始位置。
import itertools
mylist =
num_times = [(k, len(list(v))) for k, v in itertools.groupby(mylist)]
print(num_times)
sumIndexList = []#存储符合要求的元素首次出现的位置
for i in range(len(num_times)):
if num_times == 1 and num_times >= 4:
sumIndex = 0
while i >= 1:
sumIndex += num_times
i = i - 1
sumIndexList.append(sumIndex)
print("符合要求的元素首次出现的位置列表为:",sumIndexList)结果:
输出结果:
[(1, 2), (0, 1), (1, 3), (0, 4), (1, 4), (0, 1), (1, 1), (0, 1), (11, 1), (0, 1)]
符合要求的元素首次出现的位置列表为: 本帖最后由 Twilight6 于 2020-6-27 18:31 编辑
艾依古 发表于 2020-6-27 18:12
题目里给的提示案例有这个。
参考案例:计算一个列表中连续相同的元素个数,并返回连续出现 4 次及以上
...
这样可否?
import pandas as pd
dp = pd.read_csv('你的文件名')
count = 0
mylist = []
for i in dp.iterrows():
if i['MM'] == '4M':
count += 1
else:
if count >= 3:
mylist.append(i['Data']-1-count)
count = 0
print(mylist) 可以麻烦用参考案例的代码做一下吗,题目好像要求按照参考代码来做?我不太明白怎么样可以将csv文件的某一列数据转化为list,参考案例的代码我也不太看的懂。 本帖最后由 Twilight6 于 2020-6-27 20:27 编辑
艾依古 发表于 2020-6-27 18:58
可以麻烦用参考案例的代码做一下吗,题目好像要求按照参考代码来做?我不太明白怎么样可以将csv文件的某一 ...
你说是出现 3 次吧,不包含3次以上哈
import pandas as pd
import itertools
dp = pd.read_csv('urls.csv')
mylist = list(dp['MM'])
num_times = [(k, len(list(v))) for k, v in itertools.groupby(mylist)]
print(num_times)
sumIndexList = []
for i in range(len(num_times)):
if num_times == '4M' and num_times == 3:
sumIndex = 0
while i >= 1:
sumIndex += num_times
i = i - 1
if sumIndex not in sumIndexList:
sumIndexList.append(sumIndex)
print("符合要求的元素首次出现的位置列表为:",sumIndexList) 包含三次以上,是不是只要把num_times == 3:改为num_times >= 3: 就可以了? 艾依古 发表于 2020-6-27 20:15
包含三次以上,是不是只要把num_times == 3:改为num_times >= 3: 就可以了?
是的你下次回复别人记得点回复。。。我是正好回来看看才看到你的消息 不然都不知道你发了消息 艾依古 发表于 2020-6-27 20:15
包含三次以上,是不是只要把num_times == 3:改为num_times >= 3: 就可以了?
代码有些改动 你重新复制查看 Twilight6 发表于 2020-6-27 20:26
是的你下次回复别人记得点回复。。。我是正好回来看看才看到你的消息 不然都不知道你发了消息
好滴,太谢谢你了!这个和我刚刚求助的另一题是不是很相似啊? 艾依古 发表于 2020-6-27 20:28
好滴,太谢谢你了!这个和我刚刚求助的另一题是不是很相似啊?
哪一题 最开始的嘛? Twilight6 发表于 2020-6-27 20:27
代码有些改动 你重新复制查看
好滴,谢谢~ Twilight6 发表于 2020-6-27 20:30
哪一题 最开始的嘛?
是刚刚19点多求助的一道题 艾依古 发表于 2020-6-27 20:31
是刚刚19点多求助的一道题
那个大佬帮你写了你问那个大佬吧,他数据处理比我厉害 Twilight6 发表于 2020-6-27 20:40
那个大佬帮你写了你问那个大佬吧,他数据处理比我厉害
好滴,谢谢你哦~ 艾依古 发表于 2020-6-27 20:49
好滴,谢谢你哦~
你是要等于 5 的? 如果连续 10次要算两次 5 嘛?
页:
[1]
2