考虑:
data.loc[data.cig_years (10 < a < 20), 'cig_years'] = 1这是我试过的代码,但不起作用。我想用伪码:
In the df 'data'
In the column 'cig_years'
If the value is a number between 10 and 20, change it to 1有什么毕达通的方法吗?最好没有for循环。
发布于 2022-08-03 16:28:12
我抓住你了。您可以使用方括号[]过滤熊猫的数据:
data['cig_years'] [ (data['cig_years']>10) | (data['cig_years']<20) ] = 1这基本上是说:
数据中的列'cig_years‘,其中列'cig_years’大于10,或小于‘cig_years’,则设置为1
这在熊猫数据访问中非常有用,因为您可以对特定列进行筛选,或者根据其他列上的条件进行筛选,然后设置已过滤的值。
发布于 2022-08-03 16:30:04
您需要使用您的dataframe名称"data“,并使用.loc更改它,如下所示:
data.loc[10 < data['cig_years'] < 20, 'cig_years'] = 1发布于 2022-08-03 17:32:14
您还可以使用np.where语句,如果不是在10到20之间,则该语句假设您将单独使用cig年。
data['cig_years'] = np.where(10 < data['cig_years'] < 20, 1, data['cig_years'])https://stackoverflow.com/questions/73224465
复制相似问题