2016-07-20 8 views
1

を形成:解析日時、私は次の形式でいくつかのCSVファイルをしたcsvファイル

330913;23;2;2013;0;0;6;8;7 
330914;23;2;2013;0;5;25;8;7 
330915;23;2;2013;0;10;11;8;7 
330916;23;2;2013;0;15;30;8;7 
330917;23;2;2013;0;20;17;8;7 
330918;23;2;2013;0;25;4;8;7 

私はパンダのデータフレームにそれらを読んで、日付が列(例えば)'dt'を指定する必要があり、時間。これまでの私の最大の試みは次の通りです:

df = pd.read_csv('./cucu.csv', sep=';', \ 
    header=None, dtype='str') 
df[ 'dt' ] = pd.to_datetime(\ 
    df[3]+df[2]+df[1]+df[4]+df[5]+df[6], \ 
    format='%Y%m%d%H%M%S') 

私の質問は、文字列を処理せずにどうしますか?私はのようなもの使用して、過去にこれをやったかなり確信している:

df = pd.read_csv('./cucu.csv', sep=';', header=None, \ 
    parse_dates={'dt': [3,2,1,4,5,6]}) 

を、それは今働いていない:私は2013 2 23 0 0 6

のような文字列と列dtを取得し、私は何をしないのですか?

答えて

2

read_csvの方法を確認してください。具体的には、date_parser kwargはあなたが探しているものです。それはparse_date列によって作成された結果の文字列を受け取り、それを処理します。

df = pd.read_csv('./cucu.csv', sep=';', header=None, parse_dates={'dt': [3,2,1,4,5,6]}, date_parser=lambda dts: pd.to_datetime(dts, format='%Y %m %d %H %M %S')) 
+0

うん、それは、ありがとう!質問: '[[3,2,1,4,5,6]]に二重括弧を入れる理由はありますか?シングルと一緒に仕事をしているようです... – Luis

+0

このコードでは、単一のリストが私にエラーを投げます。 – Alex

+0

@ルイス「intsまたは名前のリスト」に従って、たとえば、[1、2、3] - >列1、2、3を別々の日付列として解析しようとした場合。例:[[1、3]] - >列1と列3を結合し、 という単一の日付列として解析します。 – Alex

関連する問題