【问题标题】:For loop and Conditionals in pandas DataFramepandas DataFrame中的for循环和条件
【发布时间】:2018-08-02 16:53:17
【问题描述】:

我有这个 DataFrame,我需要编写一个条件来仅提取加星标的能量。

Energy  Time
0       80
0       82 
0       84
0       86
287**   88
287     90
287     91
287     92
0       94
0       96
0       98
302**   100
302     102
302     104
302     106
0       108
0       110 

这个想法是在 Energy(t)>0 & Energy(t-1)==0 时接受 Energy 值。

我尝试创建一个 for 循环

set_time=set(df.loc[:,'Time'])
list_time=list(set_time)
for t, time in enumerate(list_time):
     if df['Energy'][t] > 0 & df['Energy'][t-1]==0:
        print(df['Energy'],t)

但我得到了错误。提前非常感谢

【问题讨论】:

  • 你得到什么错误?
  • KeyError: '能量'

标签: pandas loops for-loop dataframe conditional


【解决方案1】:

只有一种方法

v=df.eq(0).Energy.cumsum()

df.groupby(df.eq(0).Energy.cumsum()).head(2).loc[df.groupby(v).Energy.filter(lambda x : x.ne(0).any()).index].dropna()

Out[1538]: 
    Energy   Time
3      0.0   86.0
4    287.0   88.0
10     0.0   98.0
11   302.0  100.0

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-05-22
  • 1970-01-01
  • 2020-01-07
  • 2020-03-06
  • 1970-01-01
  • 2020-01-19
  • 2023-01-08
  • 2022-01-01
相关资源
最近更新 更多