如何使用索引从数据框中获取值?

我有一个数据框:

test      data
 1         11
 1         12
 1         0
 1         15
 1         16
 1         0

所以我在这里试图获取0

之前的值
    zero_indexes = list(input_with[input_with['data'] == 0].index)
    df2 = pd.DataFrame()
    for each_zero_index in zero_indexes:
       value = input_with.loc[each_zero_index - 1: each_zero_index]
        if(value != 0):
              df1 = input_csv.loc[each_zero_index - 3: each_zero_index]
              df2 = df2.append(df1) 
df2.to_csv('final_2.csv')

在这里,我没有得到value,因为它只返回df。有人可以帮我吗?

qq394496014 回答:如何使用索引从数据框中获取值?

您可以使用的IIUC:

df.loc[df.data.eq(0).shift(-1).fillna(False),'data']

1    12
4    16
Name: data,dtype: int64

根据您的评论进行更新:

df.loc[df.data.eq(0).shift(-1).astype(bool).idxmax(),'data']
# 12
,

您是否要从“数据”列中获取非零值或在“数据”列中获取至第一个零值?

如果需要,这会将非零值附加到新的DataFrame上:

index=data.index[data['data'] != 0].tolist()
print(index)
data2=pd.DataFrame([])
for i in index:
    x=data.loc[i,'test']
    y=data.loc[i,'data']
    df=pd.DataFrame({'test':[x],'data':[y]})
    data2=data2.append(df,ignore_index=True)
print(data2)
本文链接:https://www.f2er.com/3166014.html

大家都在问