pandasで平均時間差を求める
最大時間から最小時間を減算して回数で割る
エラー:TypeError:ufunc true_divide cannot use operands with types dtype(‘O’) and dtype(’
同じプログラムが処理訓練セットとテストセットで現れた結果は異なる.
時間タイプは
何が原因なのかは不明ですが、別々に処理するしかありません.この中にもobjectタイプかどうかを判断するピットがあります.boolタイプとは限りません.
エラー:TypeError:ufunc true_divide cannot use operands with types dtype(‘O’) and dtype(’
同じプログラムが処理訓練セットとテストセットで現れた結果は異なる.
時間タイプは
orderTime_x datetime64[ns]
orderTime_y datetime64[ns]
dtype: object
ID
100000000013 10122563500000000
100000000393 0
100000000459 727472500000000
100000000637 0
100000000695 0
100000000949 257783333333333
100000000975 0
100000001023 1117524500000000
dtypes object dtype('O')
userid
100000001023 0 days 00:00:00
100000001505 1 days 04:46:17.750000
100000003461 0 days 00:00:00
100000005007 0 days 00:00:00
100000008119 0 days 00:00:00
100000009017 30 days 01:18:12.500000
100000009773 0 days 00:00:00
100000009925 0 days 00:41:10.500000
100000010199 27 days 11:07:17.625000
100000014029 0 days 00:00:00
100000015969 0 days 00:00:00
dtypes
timedelta64[ns] dtype('
何が原因なのかは不明ですが、別々に処理するしかありません.この中にもobjectタイプかどうかを判断するピットがあります.boolタイプとは限りません.
f21 = pd.DataFrame(feature.loc[time_gap.index]["F2.1"])
f217 = (time_gap["orderTime_x"] -
time_gap["orderTime_y"]) / f21["F2.1"]
f217 = pd.DataFrame(f217)
bf217 = f217.dtypes != object
# bool
if isinstance(bf217, bool):
# bool, object
if bf217:
f217[0] = f217[0].values / np.timedelta64(1, 'ns')
else:
# bool, .bool() bool
if bf217.bool():
f217[0] = f217[0].values / np.timedelta64(1, 'ns')
feature["F2.17"] = f217