首页 > 解决方案 > 当下一行是数字时获取数据框

问题描述

我有一个看起来像这样的 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

标签: pythonpandas

解决方案


尝试这个,

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

推荐阅读