python - 如何使用 pandas 查找丢失和修改的行?
问题描述
我正在尝试使用一些假设的数据框来查找缺失值,df2
如下所示merge
:
dict_a = {'File': ["Orange", "Apple", "Kiwi", "Cherry", "Grapes"], 'Modified':[1, 15, 30, 24, 16]}
dict_b = {'File': ["Apple", "Orange", "Grapes"], 'Modified':[0, 1, 16]}
df1 = pd.DataFrame(dict_a)
df2 = pd.DataFrame(dict_b)
display(df1)
display(df2)
df3 = pd.merge(df1,df2,how='left',indicator='Exist')
display(df3)
有了这个结果,它告诉我存在具有“left_only”特征的行,即它们可以被修改或丢失。
将丢失的标记为“丢失”的有效方法是什么?
解决方案
获取您的原始代码:
dict_a = {'File': ["Orange", "Apple", "Kiwi", "Cherry", "Grapes"], 'Modified':[1, 15, 30, 24, 16]}
dict_b = {'File': ["Apple", "Orange", "Grapes"], 'Modified':[0, 1, 16]}
df1 = pd.DataFrame(dict_a)
df2 = pd.DataFrame(dict_b)
使用外连接加入,然后按“文件”分组,然后进行一些分组、聚合和可选替换,例如:
m = (
df1.merge(df2, how='outer', indicator='Exist', sort=False)
.groupby('File', sort=False, as_index=False)
.agg({'Modified': 'first', 'Exist': 'last'})
# optionally
.replace({'Exist': {'both': 'matched', 'right_only': 'modified', 'left_only': 'missing'}})
)
这会给你:
File Modified Exist
0 Orange 1 matched
1 Apple 15 modified
2 Kiwi 30 missing
3 Cherry 24 missing
4 Grapes 16 matched
推荐阅读
- reactjs - 命令 create-react-app 不运行,它会产生错误
- javascript - 基于另一个 CSS 样式元素的 Javascript 内联旋转变换样式
- javascript - 将 PHP 变量传递给 javascript,包括引号和 javascript
- java - 如何动态更改状态栏中的文本
- python - python应用程序在我使用vpn或@work的地方不起作用
- python-3.x - 如何在用户定义的函数中使用 print() 实现多行打印?
- reactjs - 将单个表条目传递给反应中的另一个兄弟组件
- windows - 通用 Windows 平台构建中的 Unity TCP 客户端构造函数错误
- javascript - 将文档上传到 SharePoint Online 时计算列值
- javascript - 根据文本长度对齐图标