亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python新手問題——大txt文件按條件將多行合并

瀏覽:65日期:2022-07-29 14:51:19

問題描述

數據格式如下:······1107 1385331000000 1.31425116071267541107 1385331000000 0.00216831966616601571107 1385331600000 0.00216831966616601571107 1385331600000 1.48678059856709231107 1385331600000 0.00216831966616601571107 1385332200000 1.16976269383032431107 1385332800000 0.00216831966616601571107 1385332800000 0.005813069022279304 1107 1385332800000 1.28473294406098271107 1385332800000 0.00216831966616601571107 1385333400000 1.28915863808346031108 1385247600000 0.0269431681771513561108 1385247600000 6.1846964752626531108 1385248200000 0.059462889200508061108 1385248200000 6.3595727853353561108 1385248200000 0.0106028805902600441108 1385248800000 0.0269431681771513561108 1385248800000 5.5680479237872721108 1385249400000 0 0.010242026851040091108 1385249400000 5.2130178228553141108 1385250000000 0.010242026851040091108 1385250000000 5.3853272542178931108 1385250600000 0.016259860511678353 1108 1385250600000 4.9026440746581151108 1385251200000 4.1412888084884361108 1385251800000 0.05388633635430271 1108 1385251800000 4.6840966949668611108 1385251800000 0.010242026851040091108 1385252400000 4.3865801131770491108 1385253000000 4.5822193907978331108 1385253600000 5.2110610962798311108 1385254200000 0.020484053702080181108 1385254200000 3.9015460515633161108 1385254200000 0.010242026851040091108 1385254800000 4.0387888693118255······每一行數據間是tab鍵隔開的第一列是標號,第二列是UTC格式時間戳,第三列是流量數據,每行的數據是10分鐘內的,現在想把同一個標號的比如第一列為1107的每一小時的數據疊加起來成為新的一行(第二列的時間可以用時間戳表示或者以時間間隔表示),完全沒有頭緒,請大神指點指點

問題解答

回答1:

自己解決了,雖然可能比較復雜,但是能滿足需求

__author__ = ’Administrator’file = open(’day24.txt’, ’a+’)s = 'area time datan'file.write(s)file.closefile = open(’sms-call-internet-mi-2013-11-24-24.txt’,’r’)line = file.readline()list1 = []#時間num1 = []#dataarea = []while 1: line = file.readline() if line == ’’:break a = line.split() if int(a[0]) == 1:if a[2] == 'NA': a[2] = ’0’area.append(a[0])if a[1] in list1: num1[list1.index(a[1])] = float(num1[list1.index(a[1])])+float(a[2])else: list1.append(a[1]) num1.append(a[2]) elif int(a[0]) < 10001:if a[2] == 'NA': a[2] = ’0’if a[0] not in area: area.append(a[0]) file1 = open(’day24.txt’, ’a+’) for i in list1:file1.write('%-8s%-16s%.20fn' % (area[area.index(a[0])-1], i, float(num1[list1.index(i)]))) file1.close file1 = open(’day24.txt’, ’r’) file1.close list1 = [] num1 = []if a[1] in list1: num1[list1.index(a[1])] = float(num1[list1.index(a[1])])+float(a[2])else: list1.append(a[1]) num1.append(a[2]) else:breakfile.closefile = open(’day24.txt’, ’a+’)for j in list1: file.write('%-8s%-16s%.20fn' % (a[0], j, float(num1[list1.index(j)])))file.closefile = open(’day24.txt’, ’r’)file.close回答2:

如果是按照時間序列的,直接使用generator來讀取原文件,生成新的行然后輸出就可以了.

回答3:

pandas可以解決你的需求,讀取數據到dataframe中再進行處理

回答4:

這個要看你的數據量有多大了

使用 文件句柄遍歷 不用用 readlines() (內存可能不夠)

使用類似于字典一樣的數據結構來存儲你的信息,如果內存不夠,就要再想辦法,中間信息寫磁盤等。

大概的思路如下

from collections import Counterc = Counter()f = [’1107 1385332800000 1.2847329440609827’,’1107 1385332800000 0.0021683196661660157’,’1107 1385333400000 1.2891586380834603’,’1108 1385247600000 0.026943168177151356’,’1108 1385247600000 6.184696475262653’,’1108 1385248200000 0.05946288920050806’ ]’’’with open(’xxoo.txt’) as f: # f 文件遍歷句柄,相當于上面的 list f for i in f:s = i.split()c[s[0]] += s[2]’’’for i in f: # 這里是遍歷 f, 這里遍歷的是 list f, 你實際情況要用上面的 f s = i.split() # 這里是空格分割,可以使用 print s 看看結果 c[s[0]] += float(s[2]) # c 用來統計for i in c: print i, c[i]回答5:

你這個等于就是基于標號和小時兩個指標分組統計,用pandas讀入,用to_datetime將時間戳轉化為時間列再取小時數,然后用groupby同時對標號和小時進行分類,sum匯總就行了。

回答6:

請用這個思路https://www.zhihu.com/questio...

回答7:

我覺得你這個數據格式可以稍加分析一下再做1.第一列表示日期,你可以做為結果數組的第一層的鍵,result[date]2.第二列看著應該是時間(分鐘)的時間戳,這樣你要求按小時來做結果,你就每個result[data]項初始化24個元素,鍵就是小時數(可以用相應的小時數的時間戳的值做鍵),鍵值對應的就是這個小時內的數據總和,即resultdate3.初始化完成這個結果數組以后就簡單了,你就遍歷文件,逐行處理就可以了,每一行先讀取第一列的值,比如1107,就操作result[1107]。接著讀取第二列,找到對應的hourtimestamp鍵,累加就行了。4.最后遍歷result數組,輸出結果就行了。

回答8:

你需要:

from itertools import groupby

不到十行代碼就可以搞定的。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 香蕉97超级碰碰碰免费公 | 超级最爽的乱淫片免费 | 国产免费久久精品99久久 | 婷婷成人基地 | 国产伦精品一区二区三区免费观看 | a级片在线观看视频 | 中文字幕久久久久一区 | 欧美片免费观看网址 | 亚洲日本中文字幕在线2022 | 青青青久热国产精品视频 | 成年男人永久免费看片 | 精品成人一区二区三区免费视频 | 国产在线精品一区免费香蕉 | 久久精品国产2020观看福利色 | 成人黄页网站免费观看大全 | 萌白酱粉嫩福利视频在线观看 | 97久久久久 | 欧美黄色免费网站 | 中国美女黄色一级片 | 天天鲁天天玩天天爽天天 | 亚洲一级理论片 | 66j8免费视频 | 黄毛片免费 | 欧美毛片a级毛片免费观 | 欧美日韩国产在线成人网 | 高h猛烈做哭bl壮汉受欧美 | 女人国产香蕉久久精品 | 国产成人精品精品欧美 | 亚洲人成影院午夜网站 | 在线观看麻豆国产精品 | 中国免费毛片 | 自拍欧美日韩 | 欧美破处视频在线 | 伊人久久精品亚洲精品一区 | 成人网在线视频 | 国产一二三区视频 | 精品国产网 | 欧美抠逼 | 国产日本在线视频 | 夜色成人| 91精品福利久久久 |