2017-10-02 8 views
1

を使用したとき、私はExcelWriterを使用してExcelファイルに書いています:書式設定timedelta64s pandas.to_excel

writer = pd.ExcelWriter(fn,datetime_format=' d hh:mm:ss') 
df.to_excel(writer,sheet_name='FOO') 

書き込み操作が成功すると、対応するExcelファイルを開くと、私はきれいに要求されるようにフォーマット日付時刻を参照してください。

0.016359954 

おそらく数に変換同じ持続時間である:ただし、DTYPE timedelta64[ns]有するデータフレームの別の列を自動的にPythonで私はExcelで

0 days 00:23:33.499998 

しばらく参照ように、数値に変換されます。日の pd.ExcelWriterを使用してtimedelta書式を制御する方法はありますか?

答えて

1

ExcelにはTimedeltaまたは同等のデータ型がないため、不完全な選択肢がいくつかあります。

"datetime-ness"をExcelで保持するには、datetimeに変換して、時刻部分のみを表示する形式でExcelで表示できます。

df = pd.DataFrame({'td': [pd.Timedelta(1, 'h'), pd.Timedelta(1.5, 'h')]}) 
df['td_datetime'] 
df['td_datetime'] = df['td'] + pd.Timestamp(0) 

writer = pd.ExcelWriter('tmp.xlsx', datetime_format='hh:mm:ss') 
df.to_excel(writer) 
# tmp.xlsx 
# td   td_datetime 
# 0.041667 01:00:00 
# 0.0625  01:30:00 

また、あなたはシリアライズする前に文字列としてフォーマットすることができます:

df['td_str'] = df['td'].astype(str) 

df 
Out[24]: 
     td      td_str 
0 01:00:00 0 days 01:00:00.000000000 
1 01:30:00 0 days 01:30:00.000000000