![](/img/trans.png)
[英]How can I categorize all columns in a data at once? (Make all values become High, Medium, Low)
[英]How to label column inputs "low - medium -high"?
我有 1 分钟间隔的数据,我想将列输入分组为低-中-高。
如果在 0-33 之间:低 如果在 33-67 之间:中等 如果在 67-100 之间:高
由此:
df
timestamp val1
2019-06-05 40
2019-06-05 12
2019-06-05 78
对此:
df
timestamp val1
2019-06-05 medium
2019-06-05 low
2019-06-05 high
您可以使用pandas.cut()
。
bins = [0, 33, 67, 100]
labels = ['low', 'meduin', 'high']
df['val1'] = pd.cut(df['val1'], bins, labels=labels)
print(df)
timestamp val1
0 2019-06-05 meduin
1 2019-06-05 low
2 2019-06-05 high
您可以执行以下操作:
df['val1'] = df['val1'].apply(lambda x: 'low' if 0 < x < 33 else 'med' if 33 <= x < 66 else 'high')
另一种可能的解决方案,基于numpy.where
:
df['val1'] = np.where(df.val1 <= 33, 'low',
np.where(df.val1 < 67, 'medium', 'high'))
Output:
timestamp val1
0 2019-06-05 medium
1 2019-06-05 low
2 2019-06-05 high
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.