您可以使用pd.Series.between方法,而不是pd.date_range和isin
这是一个例子
import pandas as pd
#dict
d = {'A': ['2020-01-01 00:00:00+00:00', '2024-01-24 00:00:00+00:00']}
# Let's convert strings to datetime
for k, (start, end) in d.items():
d[k] = [pd.to_datetime(start), pd.to_datetime(end)]
#df
df = pd.DataFrame({
'ID': [1, 2, 3],
'time': pd.to_datetime(['2024-01-23 00:00:00+00:00', '2025-01-23
00:00:00+00:00', '2019-01-23 00:00:00+00:00'])
})
# Assign labels
for k, (s, e) in d.items():
df.loc[df["time"].between(s, e), 'Label'] = k
print(df)