我有一个带有名为' quality'它的数值介于1和9之间,我想将这些值转换如下: 5或更少转换为0,6或更大转换为1.
这行代码有效:5被映射到0,6被映射到1。
wine [' quality_target'] = wine.quality.map({5:0,6:1})
但是,这行代码会引发错误。
wine [' quality_target'] = wine.quality.map({< 6:0,> 5:1})
如何指定要映射的地图(小于6:0,大于5:1
答案 0 :(得分:1)
我会在这种情况下使用np.where。
import numpy as np
df['q'] = np.where(df.Quality < 7, 0, 1))
答案 1 :(得分:0)
将来您可能想要提供一些测试数据以及您尝试过的内容。格式化代码也很好。我会试试这个:
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)