python - Pandas DataFrame - df[df['SUMLEV'] == 50] 和 df.where(df['SUMLEV'] == 50) 有什么不同
问题描述
df[df['SUMLEV'] == 50]
和有什么不同df.where(df['SUMLEV'] == 50)
解决方案
df[df['SUMLEV'].eq(50)]
返回原始 DataFrame 的子集;您的条件所在的行True
。
df.where(df['SUMLEV'].eq(50))
返回与原始形状相同的 DataFrame ;您的条件评估为的行False
被NaN
排除在外。
import pandas as pd
df = pd.DataFrame({'foo': [1,2,3,4], 'SUMLEV': [10,50,50,70]})
df[df['SUMLEV'].eq(50)]
# foo SUMLEV
#1 2 50
#2 3 50
df.where(df['SUMLEV'].eq(50))
# foo SUMLEV
#0 NaN NaN
#1 2.0 50.0
#2 3.0 50.0
#3 NaN NaN
推荐阅读
- javascript - 是否使用时间戳来初始化受时区影响的日期?
- ios - 使用 Objective-C 的自动更新订阅
- scala - 使用scala ad spark将数组中的元素分配到同一个DataFrame中
- angular - Angular 8 - 使用“ng-translate”它不会翻译特定属性
- angular - 将 2 角度项目开发到子文件夹中
- javascript - Frequency Counter in array of objects for certain key
- image - 如何将图像缩小到 1MB?
- javascript - 10秒后服务器响应时如何使用ajax发送请求?
- ios - 我在使用登录视图的 if/else 语句更改 SwiftUI 中的视图时遇到问题
- c - 如何在具有功能代码 2 的 Modbus RTU 中计算预期字节数