python - 当下一行是数字时获取数据框
问题描述
我有一个看起来像这样的 DataFrame:
import numpy as np
import pandas as pd
df=pd.DataFrame([['ph','ro','to'],[5,5,8],[4,3,1],['ph','ro','to'],[np.NaN,np.NaN,np.NaN],
[np.NaN,np.NaN,np.NaN],['ph','ro','togr'],[5,5,8],['ph','gho','to'],
[np.NaN,np.NaN,np.NaN]],columns=['A','B','C'])
df
A B C
0 ph ro to
1 5 5 8
2 4 3 1
3 ph ro to
4 NaN NaN NaN
5 NaN NaN NaN
6 ph ro togr
7 5 5 8
8 ph gho to
9 NaN NaN NaN
我想要做的是获取df.A='ph'
同一列中的位置和下一行是 numerique 并获得:
A B C
0 ph ro to
6 ph ro togr
解决方案
尝试这个,
print df[(df['A']=='ph')&(pd.to_numeric(df.A,errors='coerce').shift(-1).notnull())]
输出:
A B C
0 ph ro to
6 ph ro togr
推荐阅读
- sql - 将 Employee 表中的所有数据从数据库复制到 A 到数据库 B 上的 Employee 表
- python - A3C 的自定义内存层
- bash - 如何让Linux中的tee逐行提供屏幕输出,而不是在执行结束时?
- macos - 如何在云端构建和部署 iOS 应用程序?
- php - 长 PHP 脚本在 10 分钟标记处导致 500 错误
- r - 基于另一个向量的值重新分配向量索引的值的问题
- javascript - 合并具有相同键的两个对象会覆盖第一个数组
- css - 如何让 Visual Studio Code 将“”(反引号)内的文本识别为代码?
- winapi - “设备实例路径”名称是否有名称限制?
- python - Pandas 使用 str replace 将不在国籍列表中的国家替换为“其他”