4

次の形式の株式相場表示データがあります。

40289.65972
40289.66319
40289.66667

そしてExcelはそれらを魔法のように次のように変換することができます:

4/22/14 3:50 PM
4/22/14 3:55 PM
4/22/14 4:00 PM

「セルのフォーマット」経由

で同じ変換を行うにはどうすればよいpandasですか?

4

3 に答える 3

7

上記のリンクに記載されている解決策は機能するため、ここでスニペットを再投稿します。ありがとう!

import datetime

def minimalist_xldate_as_datetime(xldate, datemode):
    # datemode: 0 for 1900-based, 1 for 1904-based
    return (
        datetime.datetime(1899, 12, 30)
        + datetime.timedelta(days=xldate + 1462 * datemode)
    )
于 2012-08-12T02:14:37.443 に答える
5

パンダ(邪悪な高速)内にとどまるには、to_timedelta()

import pandas as pd
# should get  7/7/1988 1:26:24 a.m. (https://support.microsoft.com/en-us/kb/214094)
pd.to_datetime('1899-12-30') + pd.to_timedelta(32331.06, 'D')

生成する Timestamp('1988-07-07 01:26:24') Excel-float-datesでいっぱいのデータフレームがある場合は、すべてを変換できます。

df['BetterDT'] = pd.to_datetime('1899-12-30') + pd.to_timedelta(df.ExecDate, 'D')
于 2016-06-30T16:32:44.627 に答える
2

Excelは1900年をうるう年と見なしているため、翻訳したい内容に注意してください。http: //spreadsheetpage.com/index.php/oddity/the_intentional_date_bug/

于 2014-08-29T11:38:15.773 に答える