将新值映射到DataFrame列

我有一个名为'quality'的数字值为1到9的pandas数据框,我想按如下方式转换这些值: 将5或更少的值转换为0,并且大于或等于6被转换为1。将新值映射到DataFrame列

这行代码的工作原理:5被映射为0,和6被映射到1。

酒[ 'quality_target'] = wine.quality.map({5- :0,6:1})

但是,这行代码会引发错误。

酒[ 'quality_target'] = wine.quality.map({< 6:0,> 5:1})

如何指定地图,映射(小于6:0,大于比5:1

回答:

在未来你可能想提供一些测试数据和你试过什么也格式化你的代码也不错我会尝试这样的:。

import pandas as pd 

# some fake data

data = pd.DataFrame({

'col1':[1, 1, 2, 10, 5, 3, 6, 7]

})

map_func = lambda x: 0 if x <= 5 else 1

# apply it to the dataframe

data.col1.apply(map_func)

# this is not done in place so you can create a new column

data['col1_transformed'] = data.col1.apply(map_func)

回答:

我会使用NP在这种情况下。

import numpy as np 

df['q'] = np.where(df.Quality < 7, 0, 1))

以上是 将新值映射到DataFrame列 的全部内容, 来源链接: utcz.com/qa/259335.html

回到顶部