2017-10-11 9 views
1

私はExcelファイルにいくつかのデータを持っています。私はpandas read_excelメソッドを使用してそれを読んでいます。 しかし、すべての列のデータ全体を日付列を含む文字列として読み取る必要があります。Python Pandas - 日付カラムを文字列として読み込みます。

問題は、日付列を文字列として元の形式で残したいということです。例えば、私は'01 .01.2017 'をエクセルで持っていて、日付としてフォーマットされていて、私のデータフレームに'01 .01.2017'を入れたいと思っています。

私はdtype = strでread_excelのdytpesパラメータを使用することが正しいアプローチであると考えました。しかし、pandasはdatetimeとして日付列を読み取り、文字列に変換します。だから私はいつも私のデータフレームに '2017-01-31 00:00:00'を持っています。

これを行う方法はありますか?

答えて

0
df['date_column'] = df['date_column'].dt.strftime('%d.%m.%Y') 
+0

問題は、データを読んだ後、元の日付形式が何であるか分かりません。 – nova

+0

ファイルを開いて日付形式を調べるだけでなく、 'strftime'を使っていると、非効率的です。その時点でいくつかのオプションがあります。パラメータ 'converters = {'Date':str}'が機能しない場合は、Excelで読み込む前にcsvに変換してください。 –

+0

しかし、どのようにフォーマットを調べることができますか?あなたは他のパッケージでファイルを開くことを意味しますか、私は何かを逃しますか? – nova

1

日付型の列を初期型のままにすると、次のコードが役立ちます。最初の行では、変数「colsの」日付列以外のすべての列に挿入して、次の2行で私たちは残りの列の種類を変更します。

cols=[i for i in df.columns if i not in ["Date_column"]] 

for col in cols: 
    df[col]=df[col].astype('category') 

はそれが役に立てば幸い! :-)

+0

しかし、Excelフレームを読み込んだら(!)データフレームを反復処理しています。そして、ファイルの読み込み中に問題が発生します。したがって、データフレームには日付が格納されており、初期形式はすでに失われています – nova

+0

実際に他のすべての列の種類をカテゴリに変更する点は何ですか? – nova

関連する問題