5

日付を文字列として含む列を特定して、より適切な型 (DateTime または UTC などの数値) に変換しようとしています。使用される日付形式は27/11/2012 09:17、の正規表現を使用して検索できるものです\d{2}/\d{2}/\d{4} \d{2}:\d{2}

私の現在のコードは次のとおりです。

date_cols = []
df = cleaned_data
date_pattern = re.compile('\d{2}/\d{2}/\d{4} \d{2}:\d{2}')
for column in df:
    if date_pattern.search(str(item)):
        date_cols += [column]
return date_cols

これは の機能を利用していないと確信していますpandas。列を識別するか、DateTime または UTC タイムスタンプに直接変換するより良い方法はありますか?

4

2 に答える 2

5

列全体を変換する場合は、convert_objects を使用できます。

df.convert_objects(convert_dates=True)

列/シリーズに含まれる日付を抽出するには、findall を使用できます。

In [11]: s = pd.Series(['1', '10/11/2011 11:11'])

In [12]: s.str.findall('\d{2}/\d{2}/\d{4} \d{2}:\d{2}')
Out[12]:
0                    []
1    [10/11/2011 11:11]
dtype: object

In [13]: s.str.findall('\d{2}/\d{2}/\d{4} \d{2}:\d{2}').apply(pd.Series)
Out[13]:
                  0
0               NaN
1  10/11/2011 11:11

*次に、convert_objects を使用してタイムスタンプに変換します...*

于 2013-09-13T01:44:15.517 に答える
3

あなたがどれだけ熱心になりたいかに応じて、to_datetimeints → datetimes (UNIX エポック以降のデフォルトは ns) を含む、datetime と見なされるものを datetime に強制します。

to_datetime見つかった日時を解釈する方法についても、多くの制御が可能です。

pandas.to_datetime(arg, errors='ignore', dayfirst=False, utc=None,
                                 box=True, format=None, coerce=False, unit='ns')
于 2013-09-13T01:59:32.683 に答える