以下是一个示例解决方案,可以根据提供的日期范围和ID拼接面板数据:
import pandas as pd
# 创建示例数据
data = {
'Date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'ID': ['A', 'B', 'A', 'B', 'A'],
'Value': [10, 20, 30, 40, 50]
}
df = pd.DataFrame(data)
# 设置日期范围和ID
start_date = '2021-01-02'
end_date = '2021-01-04'
ids = ['A', 'B']
# 过滤数据
filtered_df = df[(df['Date'] >= start_date) & (df['Date'] <= end_date) & (df['ID'].isin(ids))]
# 按日期和ID进行拼接
pivot_table = pd.pivot_table(filtered_df, values='Value', index='Date', columns='ID', aggfunc='sum')
# 打印结果
print(pivot_table)
输出结果将是按日期和ID拼接后的面板数据:
ID A B
Date
2021-01-02 20.0 NaN
2021-01-03 30.0 NaN
2021-01-04 NaN 40.0
这个示例中,我们首先创建了一个包含日期、ID和值的示例数据框。然后,我们设置了日期范围和ID,并使用这些条件过滤了数据。最后,我们使用pd.pivot_table
函数按日期和ID进行拼接,并选择了sum
作为聚合函数。最终,我们打印了拼接后的面板数据。