python - 如何找到一个值与熊猫中的多个值相关联
问题描述
我在熊猫中有以下数据框
code tank product
1234 1 MS
1234 2 HS
1234 1 HS
1234 1 HS
1235 1 MS
1235 1 HS
1235 1 MS
1245 1 MS
1245 2 HS
我想在上面的数据框中找到有多少罐有多个产品与之相关联,例如对于代码 1234 罐 1 也有 Ms 和 HS 在上面的数据框中有 2 种情况
我想要的数据框是
code tank flag
1234 1 yes
1234 2 no
1235 1 yes
1245 1 no
1245 2 no
我怎样才能在熊猫中做到这一点?
解决方案
用于SeriesGroupBy.nunique
计算每组的唯一值:
df = df.groupby(['code','tank'])['product'].nunique().reset_index()
print (df)
code tank product
0 1234 1 2
1 1234 2 1
2 1235 1 2
3 1245 1 1
4 1245 2 1
然后提取列pop
并设置值numpy.where
df['flag'] = np.where(df.pop('product') == 1, 'no', 'yes')
print (df)
code tank flag
0 1234 1 yes
1 1234 2 no
2 1235 1 yes
3 1245 1 no
4 1245 2 no
推荐阅读
- android - gradle中以下任务之间的循环依赖
- javascript - 如何在 JavaScript 中创建 HashMap?
- java - 如何使用Java按列在excel中编写数据列表?
- ruby-on-rails - 如何使用ajax从数据库中获取数据
- python - python中的调查/如何让用户退出调查
- tensorflow - 如何提高模型的准确性?
- spring-boot - 检查响应对象是否不返回数据
- python - 如何执行我的脚本并在 PYQT5 的 GUI 中打印它?
- unit-testing - 我的应用程序的哪一层应该进行集成测试:Controller vs Service VS DAO?
- java - 如何使用外部提供的 Connection 和 TransactionManager 引导 EntityManagerFactory