import pandas as pd
# 创建示例数据
df = pd.DataFrame({'id': ['A', 'A', 'B', 'B'], 'date': ['2021-01-01', '2021-01-02', '2021-01-01', '2021-01-03'], 'value': [1, 2, 3, 4]})
df['date'] = pd.to_datetime(df['date'])
# 找到每个ID的最早日期
min_dates = df.groupby('id')['date'].min().reset_index()
# 将最早日期的行的值更改为NaN
df = df.merge(min_dates, on=['id', 'date'], how='left')
df.loc[df['date_x'] == df['date_y'], 'value'] = pd.np.nan
# 删除不需要的列并重命名
df = df.drop('date_y', axis=1).rename(columns={'date_x': 'date'})