熊猫数据框更改列中的值

时间:2020-08-13 11:02:33

标签: python pandas dataframe

我有一个大型数据框,其中包含以下列:

此处用作示例的数据here

import pandas 

x = pd.read_csv('example1_csv.)
x.head()

ID  Year    Y
22445   1991    40.0
29925   1991    43.333332
76165   1991    403.0
223725  1991    65.0
280165  1991    690.5312

我想将Y列中的数字更改为类别lowmidhigh,其中每个类别都特定于{ {1}}:

  1. Y替换Low-3000600范围内的任何数字。

  2. Y替换Mid6011500范围内的任何数字。

  3. Y替换High150117000范围内的任何数字。

例如,如果Y的值介于IDY之间,则该-3000的数值将位于{{1} }替换为600

一个人如何进行这些替换?我尝试了几种方法,但是每次都遇到IDY类型错误。此问题中使用的数据文件位于上面的Github链接中。预先非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

使用numpy.select

import numpy as np
x.Y = np.select([x.Y.lt(601), x.Y.lt(1501), x.Y.lt(17000)], ['Low', 'Mid', 'High'])

答案 1 :(得分:1)

这也应该起作用。

x['Y'] = x['Y'].apply(lambda i : 'Low' if i > -3000 and i < 600 else ('Mid' if i >601 and i < 1500 else 'High'))