下面是一个使用Python的解决方法,通过多个条件对数据进行分组,并找到最接近的整数。
import pandas as pd
# 创建示例数据
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'Nick', 'John'],
'Age': [28, 32, 45, 23, 34, 40],
'Height': [175, 180, 165, 170, 175, 160]}
df = pd.DataFrame(data)
# 根据多个条件分组
grouped = df.groupby(['Name', 'Age'])
# 定义一个函数,找到最接近的整数
def find_closest_integer(group):
return group['Height'].apply(lambda x: int(round(x)))
# 应用函数并重置索引
df['Closest_Integer'] = grouped.apply(find_closest_integer).reset_index(level=[0, 1], drop=True)
# 打印结果
print(df)
运行结果如下:
Name Age Height Closest_Integer
0 Tom 28 175 175
1 Nick 32 180 180
2 John 45 165 165
3 Tom 23 170 170
4 Nick 34 175 175
5 John 40 160 160
在这个例子中,我们使用了Pandas库来处理数据。首先,我们创建了一个包含姓名、年龄和身高的DataFrame。然后,我们使用groupby
函数将数据按照姓名和年龄进行分组。接下来,我们定义了一个函数find_closest_integer
,该函数将每个分组中的身高值转换为最接近的整数。最后,我们使用apply
函数将函数应用到分组上,并将结果存储在新的列Closest_Integer
中。
这个示例展示了如何根据多个条件进行分组,并对每个分组执行特定操作。在这种情况下,我们找到了每个人最接近的身高整数。