2017-03-17 8 views
0

PowerShellで生成された膨大なcsvファイルを解析しています。asian文字のUTF-16LE文字列をDateTimeに変換する

次のようにそのほとんどが見えます: "2017年12月1日午前4時47分55秒PM "@ "2017年12月1日午前4時47分55秒PM" @

" .TXT" を@ "2017年12月1日午前4時47分55秒PM " "0"

しかし、このようなルックスのいくつかの@:

.PPTX 2017年2月20日오후4 "@: 30:39「@」2017-02-20 4:30:39「@」2015-11-12午後 7:32:11「@」13387528「

私は、タイムスタンプからDateTimeオブジェクトを解析したいと思いますが、それは失敗します。

pd.to_datetime ("2017-02-20 PM 4:30:39", format='%Y-%m-%d %p %I:%M:%S') 
Timestamp('2017-02-20 16:30:39') 

pd.to_datetime ("2017-02-20 오후 4:30:39", format='%Y-%m-%d %p %I:%M:%S') 
ValueError: time data '2017-02-20 오후 4:30:39' does not match format '%Y-%m-%d %p %I:%M:%S' (match) 

私は六角としてファイルを開くだけで、対応する「\のuc624の\のud6c4」に置き換えることで、この問題に対処することができます'午前午後'。

この問題を解決するより便利な方法がありません。

答えて

1

strftimeは、このための機能を持っていないが、私は前に使ってきたトリックは、文字列のおそらく外国文字のビットを切除することです:

pd.to_datetime(" ".join(np.array("2017-02-20 오후 4:30:39".split(" "))[[0, -1]]), 
       format='%Y-%m-%d %I:%M:%S') 

私はエレガントな「これを呼び出すことはありません"しかし、それは動作します。

+0

ええ、私は現時点でこれに類似したことをしています。ありがとう! – CaptainTrunky

+0

'strftime'はうんざりです。 –

関連する問題