以下是一个按照另一列进行分组外推的解决方法的代码示例:
import pandas as pd
# 创建示例数据
data = {'Name': ['John', 'Sam', 'John', 'Sam', 'John', 'Sam'],
'Age': [25, 30, 35, 40, 45, 50],
'Group': ['A', 'B', 'A', 'B', 'A', 'B']}
df = pd.DataFrame(data)
# 按照Group列进行分组
groups = df.groupby('Group')
# 创建一个空的DataFrame用于存储外推结果
extrapolated_df = pd.DataFrame()
# 遍历每个分组
for group_name, group_df in groups:
# 按照Age列进行排序
group_df = group_df.sort_values(by='Age')
# 计算Age列的外推值
extrapolated_age = group_df['Age'].diff().fillna(0) + group_df['Age']
# 将外推值添加到新的DataFrame中
group_df['Extrapolated Age'] = extrapolated_age
extrapolated_df = pd.concat([extrapolated_df, group_df])
# 输出结果
print(extrapolated_df)
在上面的代码中,我们首先创建了一个包含Name、Age和Group列的示例数据DataFrame。然后,我们使用groupby()
方法按照Group列进行分组。接下来,我们创建了一个空的DataFrame来存储外推结果。然后,我们遍历每个分组,按照Age列进行排序,并计算Age列的外推值。最后,我们将外推值添加到新的DataFrame中,并使用concat()
方法将所有分组的结果合并到一起。最后,我们输出了外推结果。
注意,这只是一个示例,实际问题可能需要根据具体要求进行适当的修改。