Pandas中判断A列元素是否对应B列多个不同元素
找出Pandas DataFrame中对应多类B列值的A列元素
解决步骤
- 按A列分组,提取每组B列的唯一值
- 筛选出B列唯一值数量大于1的分组
- 按指定格式输出结果
示例代码
import pandas as pd # 初始化数据 d = {'A': [100, 100, 100, 100, 100, 5, 5, 5, 5], 'B': ['pen', 'pen', 'pen', 'pen', 'pen', 'rubber', 'rubber', 'ruler', 'rubber']} df = pd.DataFrame(data=d) # 分组提取B列唯一值 grouped_unique = df.groupby('A')['B'].unique() # 筛选符合条件的记录 filtered = grouped_unique[grouped_unique.str.len() > 1] # 按要求格式输出 for a_val, b_list in filtered.items(): print(f"{a_val} : {list(b_list)}")
输出结果
5 : ['rubber', 'ruler']
代码说明
groupby('A')['B'].unique():将DataFrame按A列的值分组,每组保留B列的唯一元素,返回一个以A值为索引的Series。grouped_unique.str.len() > 1:通过判断每组B列唯一元素的长度,筛选出对应多个不同B值的A元素。- 最后循环遍历筛选结果,将每个符合条件的A值和对应的B列唯一值列表按指定格式打印。
内容的提问来源于stack exchange,提问作者Markimus maximus
相关产品推荐
相关产品推荐

