要按组显示非分类列的未观察到的值,可以使用groupby
和agg
函数来实现。下面是一个示例代码:
import pandas as pd
# 创建示例数据
data = {
'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
'Category': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'Value': [1, 2, 3, 4, 5, 6]
}
df = pd.DataFrame(data)
# 按组进行分组,并计算每个组中的观察到的值
observed_values = df.groupby('Group')['Value'].unique()
# 创建包含所有可能值的列表
all_values = df['Value'].unique()
# 遍历每个组的观察到的值,找出未观察到的值
for group, values in observed_values.items():
missing_values = set(all_values) - set(values)
print(f"Group {group}: {missing_values}")
这段代码将按照Group
列进行分组,并计算每个组中观察到的值。然后,它创建一个包含所有可能值的列表,并遍历每个组的观察到的值,找出未观察到的值。最后,打印出每个组的未观察到的值。
示例输出可能如下:
Group A: {3, 4, 5, 6}
Group B: {1, 2, 5, 6}
Group C: {1, 2, 3, 4}
这表示在组A中未观察到的值为{3, 4, 5, 6},在组B中未观察到的值为{1, 2, 5, 6},在组C中未观察到的值为{1, 2, 3, 4}。
上一篇:按组向行添加动态值