3

私はこのようなデータの束を持っています.csv:

-959.378170,-0.000026,-94.960000,1508.000000,9.000000,
-958.978170,-0.000026,-94.920000,1508.000000,9.000000,
-958.578170,-0.000026,-94.880000,1508.000000,10.000000,
-958.178170,-0.000026,-94.840000,1508.000000,10.000000,
-957.778170,-0.000026,-94.800000,1508.000000,10.000000,

最後の 2 列は時間です。15は時、08は分、6は秒です。最終的な目標は、それらに参加して、次のようなものを取得することです。

-958.978170,-0.000026,-94.920000,15:08:09,                
-958.578170,-0.000026,-94.880000,15:08:10,

どうやってやるの?

4

3 に答える 3

1

pandas の read_csv() メソッドを確認してください (http://pandas.pydata.org/pandas-docs/stable/io.html#csv-text-files)。

複数の列の文字列をまとめることができる優れた日付解析ユーティリティがあります。

于 2012-08-01T01:39:22.433 に答える
1

csvモジュールを使用して.csvファイルを読み取り (例についてはこちらを参照)、datetime.strptimeメソッドを使用して 2 つの列をオブジェクトに解析しdatetimeます。オブジェクトは任意の形式に書き出すことができます (を使用datetime.strftime)。

詳細については、ドキュメントのこのセクションを参照してください。datetime

于 2012-07-31T22:53:24.547 に答える
1

とを使用しregexますfileinput

import fileinput
import re

# Assume the input file is foo.csv
for line in fileinput.FileInput('foo.csv', inplace=1):
    mm = re.search(r'^(.+?,.+?,.+?,)(\d{1,2})(\d{2})\.0+,(\d{1,2})\.0+',
        line)
    g1, g2, g3, g4 = mm.group(1), int(mm.group(2)), int(mm.group(3)), int(mm.group(4))
    print "%s%02i:%02i:%02i," % (g1, g2, g3, g4)

これを例で実行すると...

-959.378170,-0.000026,-94.960000,15:08:09,
-958.978170,-0.000026,-94.920000,15:08:09,
-958.578170,-0.000026,-94.880000,15:08:10,
-958.178170,-0.000026,-94.840000,15:08:10,
-957.778170,-0.000026,-94.800000,15:08:10,
于 2012-08-01T01:28:54.030 に答える