2

datetime の配列から月の初日を取得しようとしています。つまり、すべての日1とすべての時間を に変更し0ます。

import pandas as pd
z1 = [datetime(2025, 10, 1, 3, 0),datetime(2025, 1, 6, 7, 0)]
pd.DatetimeIndex(z1).normalize()
DatetimeIndex(['2025-10-01', '2025-01-06'], dtype='datetime64[ns]', freq=None)

達成したいと願っていた

DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)
4

3 に答える 3

4

別の方法は、dtype の NumPy 配列datetime64[M](月単位の解像度の datetime64)を形成することです。

In [31]: np.array(z1, dtype='datetime64[M]')
Out[31]: array(['2025-10', '2025-01'], dtype='datetime64[M]')

pd.DatetimeIndexリターンに渡す

In [32]: pd.DatetimeIndex(np.array(z1, dtype='datetime64[M]'))
Out[32]: DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)
于 2016-07-17T13:16:39.183 に答える
2

最初に から作成Seriesz1、次にreplace dayに変換できdateます。

print (pd.DatetimeIndex(pd.Series(z1).apply(lambda x: x.replace(day=1)).dt.date))
DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)

別の解決策は convertdayhour:

print (pd.DatetimeIndex(pd.Series(z1).map(lambda x: x.replace(day=1, hour=0))))
DatetimeIndex(['2025-10-01', '2025-01-01'], dtype='datetime64[ns]', freq=None)
于 2016-07-17T13:03:20.323 に答える