<pre><code>df['new'] = df.groupby(['id'])['value'].transform(lambda x : \
np.where(x.diff()>0,'incresase',
np.where(x.diff()<0,'decrease',' ')))
df = df.groupby('id').new.agg(['last'])
df
</code></pre>
<p>输出:</p>
<pre><code> last
id
1 increase
2
3 decrease
</code></pre>
<p>仅增加ID:</p>
<pre><code>increasingList = df[(df['last']=='increase')].index.values
print(increasingList)
</code></pre>
<p>结果:</p>
<pre><code>[1]
</code></pre>
<p><strong>假设这不会发生</strong></p>
<pre><code>1 50
1 100
1 50
</code></pre>
<p><em><strong>如果是,那么:</strong></em></p>
<pre><code>df['new'] = df.groupby(['id'])['value'].transform(lambda x : \
np.where(x.diff()>0,'increase',
np.where(x.diff()<0,'decrease',' ')))
df
</code></pre>
<p>输出:</p>
<pre><code> value new
id
1 50
1 100 increase
1 200 increase
2 10
3 500
3 300 decrease
3 100 decrease
</code></pre>
<p>Concat字符串:</p>
<pre><code>df = df.groupby(['id'])['new'].apply(lambda x: ','.join(x)).reset_index()
df
</code></pre>
<p>中间结果:</p>
<pre><code> id new
0 1 ,increase,increase
1 2
2 3 ,decrease,decrease
</code></pre>
<p>检查行中是否存在减少/仅存在“”。放下它们</p>
<pre><code>df = df.drop(df[df['new'].str.contains("dec")].index.values)
df = df.drop(df[(df['new']==' ')].index.values)
df
</code></pre>
<p>结果:</p>
<pre><code> id new
0 1 ,increase,increase
</code></pre>