Python Pandas,获得零值以下和零值以上行的有效方法

Python Pandas,获得零值以下和零值以上行的有效方法,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,其中包含一些带零的单元格, 我想用一种方法来处理这些问题,包括得到列的平均值,最后一行在零上,后面第一行在零上 我知道如何通过去掉零来得到平均值。 我的问题是,我如何获得我提到的行 示例数据帧 2020-09-15 211.03 2020-09-16 213.60 2020-09-17 205.69 2020-09-18 208.65 2020-09-19 214.35 # get the value for this row 2020-09-20

我有一个数据框,其中包含一些带零的单元格, 我想用一种方法来处理这些问题,包括得到列的平均值,最后一行在零上,后面第一行在零上

我知道如何通过去掉零来得到平均值。 我的问题是,我如何获得我提到的行

示例数据帧

2020-09-15    211.03
2020-09-16    213.60
2020-09-17    205.69
2020-09-18    208.65
2020-09-19    214.35 # get the value for this row
2020-09-20      0.00
2020-09-21      0.00 
2020-09-22    222.54 # and for this row
试试这个:

col = df['column_name']
cond = col.ne(0) & (
    col.shift().eq(0)      # row above is 0
    | col.shift(-1).eq(0)  # row below is 0
)
df.loc[cond]
试试这个:

col = df['column_name']
cond = col.ne(0) & (
    col.shift().eq(0)      # row above is 0
    | col.shift(-1).eq(0)  # row below is 0
)
df.loc[cond]
df[column\u name].value\u counts()将不提供零的实例,然后仅减去平均公式中的实例df[column\u name].value\u counts()将不提供零的实例,然后仅减去平均公式中的实例