1. ホーム
  2. python

[解決済み] pandas to_datetime を使って「AttributeError: 'DataFrame' object has no attribute 'dtype' 」と表示される。

2022-02-04 14:36:13

質問

を使用しています。 Python 2.7.13 をWindowsマシンにインストールし、コードを書いています。 しかし、私は今、Unix クラスタ上で Python 2.7.12-goolf-2015a . 2.7.12のクラスタ上で私のコードを実行すると、pandas関数でエラーが発生します。 to_datetime 2.7.13を使用すると発生しない。

データフレーム内の日付項目をdatetimeに変換しようとすると、エラーが発生します。

df = pd.DataFrame({'year': [2015, 2016],
                       'month': [2, 3],
                       'day': [4, 5]})
pd.to_datetime(df)

以下は to_datetime コマンド

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/easybuild/software/Python/2.7.12-goolf-
2015a/lib/python2.7/site-packages/pandas-0.16.1-py2.7-linux-
x86_64.egg/pandas/tseries/tools.py", line 343, in to_datetime
return _convert_listlike(arg, box, format)
File "/usr/local/easybuild/software/Python/2.7.12-goolf-
2015a/lib/python2.7/site-packages/pandas-0.16.1-py2.7-linux-
x86_64.egg/pandas/tseries/tools.py", line 266, in _convert_listlike
if com.is_datetime64_ns_dtype(arg):
File "/usr/local/easybuild/software/Python/2.7.12-goolf-
2015a/lib/python2.7/site-packages/pandas-0.16.1-py2.7-linux-
x86_64.egg/pandas/core/common.py", line 2513, in is_datetime64_ns_dtype
tipo = _get_dtype(arr_or_dtype)
File "/usr/local/easybuild/software/Python/2.7.12-goolf-
2015a/lib/python2.7/site-packages/pandas-0.16.1-py2.7-linux-
x86_64.egg/pandas/core/common.py", line 2458, in _get_dtype
return arr_or_dtype.dtype
File "/usr/local/easybuild/software/Python/2.7.12-goolf-
2015a/lib/python2.7/site-packages/pandas-0.16.1-py2.7-linux-
x86_64.egg/pandas/core/generic.py", line 2083, in __getattr__
(type(self).__name__, name))
AttributeError: 'DataFrame' object has no attribute 'dtype'

Python/3.5.2-intel-2016.u3を読み込むとto_datetimeが動作しますが、その場合、別の問題が発生します。私はUnixオペレーティングシステムの経験が浅く、私はクラスタ上のソフトウェアの管理者権限を持っていないので、私は2.7.12を使用することにかなり縛られています。

解決方法は?

列を結合して pd.to_datetime .

pd.to_datetime(df.astype(str).apply('-'.join, 1))

0   2015-04-02
1   2016-05-03
dtype: datetime64[ns]