2017-05-24 17 views
1

私のテキストファイルが書き込まれたPythonスクリプトによって生成された時間に基づいてデータを表示します。解析テキストファイルの列が

このテキストファイルをロードして解析して出力するbashまたはpythonスクリプトを実行したいとします。 A)最後の1時間のストライク数(実際に最後の1時間のタイムスタンプに属するファイルの行数)ストライキの日の時間ごとの B)の数(上記と同じだろうが、出力24の値)

は私の例のテキストファイルは次のようになります。

2017-05-24 16:29:20,5937,12 
2017-05-24 16:30:14,950,12 
2017-05-24 16:30:44,3242,12 
2017-05-24 16:31:19,2615,12 
2017-05-24 16:51:41,8723,24 
2017-05-24 18:19:51,5166,27 
2017-05-24 18:40:44,1521,37 
2017-05-24 18:53:27,9309,24 
2017-05-24 18:57:29,13760,20 
2017-05-24 19:02:38,35905,12 
2017-05-24 19:03:57,3349,12 
2017-05-24 19:04:11,4935,12 
2017-05-24 19:04:39,14361,12 
2017-05-24 19:07:44,2726,12 
2017-05-24 19:08:04,6399,12 

私は、テキストファイルの時刻形式を調整することができます[Y]、[m]、[d]、[H]、[M]、[S]を書くことができます。 私はPythonを初めて使うので、どんなヒントもありがとうございます。私は始める方法を知らない。 おかげ

+0

これはPythonでどのような形にしたいですか?タプルのリスト?列の辞書?パンダのデータフレーム? –

答えて

0

これをロードして一貫した出力を生成する方法があります。 仮定:各テキストファイルは24時間のデータしか保持しません!

#!/usr/bin/env python 

import csv 
import datetime 

d = {n: 0 for n in range(1,25)} 

with open("lightning.txt", "r") as f: 
    filer = csv.reader(f) 
    for i in filer: 
     d[datetime.datetime.strptime(i[0],"%Y-%m-%d %H:%M:%S").hour] = (datetime.datetime.strptime(i[0],"%Y-%m-%d %H:%M:%S"), i[1], i[2]) 

for i in range(1,25): 
    if d[i] == 0: 
     print(str(i).zfill(2) + ':\t0') 
    else: 
     print(str(i) + ':\t' + str(d[i][2])) 
+0

ねえ、これです!ありがとう!私は助けてくれた皆さんの両方を意味します。本当に感謝しております。 – user2655700

1

file.readlines()とを通じて、ファイルを読み込み、ループを開始し、その後、タイムスタンプをやってのける.split(',')[0]を使用します。

次に、datetime moduleを調べてください - 私はdatetime.strptimeメソッドが役立つと思います。例えば:

>>> datetime.datetime.strptime("2017-05-24 19:04:11", "%Y-%m-%d %H:%M:%S") 
datetime.datetime(2017, 5, 24, 19, 4, 11) 

そこから、あなたはDateTimeオブジェクトにデータを関連付けるデータ構造を構築し、その後datetime.hourによってそれらを並べ替えることができます。

+0

ヒントをありがとう。私は正常にデータを解析しています。今私はプロットに必要なファイルを生成する方法を見なければならない。 – user2655700

+0

この回答があなたの質問にうまくいくと感じたら、それを受け入れるためにチェックマークをクリックして、他の人が質問にまだ答えが必要であるとは思わないようにしてください:) – Personman

関連する問題