python - 根据另一列的值从一列中选择值 - python
问题描述
我有一个df1
看起来像这样的大数据框:
DeviceID Location
1 Internal
1 External
2 Internal
2 Internal
3 Internal
3 External
3 Internal
4 Internal
4 Internal
5 External
5 Internal
我正在尝试查找并选择在列中DeviceID
同时记录了“内部”和“外部”值的单行Location
。
下一步是从数据框中删除这些行。最终的数据框df2
如下所示:
DeviceID Location
2 Internal
2 Internal
4 Internal
4 Internal
到目前为止,我尝试的是:
indexDI = df[(df['Location'] == 'Internal') & df['Location'] == 'External') ].index
df.drop(indexDI, inplace = True)
但这似乎必须删除所有带有“内部”的行。
任何帮助,将不胜感激 :)
解决方案
您可以使用groupby
来查看哪些组包含两个不同的值并使用结果对数据帧执行布尔索引:transform
nunique
df[df.groupby('DeviceID').Location.transform('nunique').eq(1)]
DeviceID Location
2 2 Internal
3 2 Internal
7 4 Internal
8 4 Internal
reset_index(drop=True)
熊猫的简单添加RangeIndex
推荐阅读
- tensorflow - 在 Keras 中连接两个嵌入层时,如何解决“indices[1,0] = 66 is not in [0, 25)”错误?
- javascript - JavaScript 计时器的问题
- eslint - 如何在 VS 代码中关闭 ESlinting 换行符
- r - 构建和扩展预测功能
- c# - C#:解码 Base64 字符串不返回完整结果/乱码
- python - 使用 Python 永久更改 Linux 中接口的 IP 地址
- powershell - 从 IP 地址获取数字的第二部分
- symfony - 错误:无法检索 API 文档
- java - 在同一个类中执行同步和非同步方法
- django - 带有超时响应的龙卷风测试