我有这样的df:
CODE STATION AVERAGE
0 109014 BUENA VISTA 29
1 111022 HUAYAN 28
2 111023 ムAムA 28
3 112058 PACARAN 28
4 111004 ALCANTARILLA 24
.. ... ... ...
263 114050 ANANEA 18
264 113100 VILCASHUAMAN 17
265 113101 CHILCAYOC 16
266 114093 PUTINA 16
267 114096 CUYO CUYO 16我想创建一个具有时间间隔的新列。所以我创建了这个代码:
df.loc[df['AVERAGE'] == 30.0, 'INTERVAL'] = '[30]'
df.loc[(df['AVERAGE'] < 30.0)&((df['AVERAGE'] >= 25.0)), 'INTERVAL'] = '<30-25]'
df.loc[(df['AVERAGE'] < 25.0)&((df['AVERAGE'] >= 20.0)), 'INTERVAL'] = '<25-20]'
df.loc[(df['AVERAGE'] < 20.0)&((df['AVERAGE'] >= 15.0)), 'INTERVAL'] = '<20-15]'
df.loc[(df['AVERAGE'] < 15.0)&((df['AVERAGE'] >= 10.0)), 'INTERVAL'] = '<15-10]'
df.loc[(df['AVERAGE'] < 10.0)&((df['AVERAGE'] >= 5.0)), 'INTERVAL'] = '<10-5]'有没有更有效的方法来做到这一点?另外,我想知道python是否有一种方法可以识别间隔的值。
提前谢谢。
发布于 2021-09-07 13:59:13
你可以试试pd.cut
df['out'] = pd.cut(df.AVERAGE,range(5,35,5), right=False)https://stackoverflow.com/questions/69089502
复制相似问题