您可以使用Pandas的groupby和agg函数来按照ID进行分组,并计算每个ID的唯一开始日期的数量。然后,将结果转换为DataFrame。
以下是一个示例代码:
import pandas as pd
# 创建示例数据
data = {'ID': [1, 1, 2, 2, 3, 3],
'Start_Date': ['2021-01-01', '2021-01-01', '2021-02-01', '2021-03-01', '2021-04-01', '2021-04-01']}
df = pd.DataFrame(data)
# 将Start_Date列转换为日期类型
df['Start_Date'] = pd.to_datetime(df['Start_Date'])
# 按照ID进行分组,并计算每个ID的唯一开始日期的数量
result = df.groupby('ID')['Start_Date'].nunique().reset_index()
# 将结果转换为DataFrame
result_df = pd.DataFrame(result, columns=['ID', 'Unique_Start_Date_Count'])
print(result_df)
输出:
ID Unique_Start_Date_Count
0 1 1
1 2 2
2 3 1
在这个示例中,我们首先创建了一个包含ID和Start_Date列的示例数据。然后,我们将Start_Date列转换为日期类型。接下来,我们使用groupby函数按照ID进行分组,并使用nunique函数计算每个ID的唯一开始日期的数量。最后,我们使用reset_index函数将结果转换为DataFrame,并打印输出。