Python 基于另一列创建true或false列';s值
对于Python 基于另一列创建true或false列';s值,python,pandas,Python,Pandas,对于Prediction列的最小值,我想在is\u best列中返回True,其余的返回False。所以我想要的是: import numpy as np import pandas as pd df_summary_sklearn = pd.DataFrame(columns=['Method','Prediction' , 'is_best']) df_summary_sklearn['Method'] = ['1-KNN', '5-KNN', '10-KNN'] df_summary_s
Prediction
列的最小值,我想在is\u best
列中返回True
,其余的返回False
。所以我想要的是:
import numpy as np
import pandas as pd
df_summary_sklearn = pd.DataFrame(columns=['Method','Prediction' , 'is_best'])
df_summary_sklearn['Method'] = ['1-KNN', '5-KNN', '10-KNN']
df_summary_sklearn['Prediction'] = [1, 2, 3] # example data
df_summary_sklearn['is_best'] = np.where((df_summary_sklearn['Prediction']).min(), True, False)
print(df_summary_sklearn)
但我现在得到的是:
Method Prediction is_best
0 1-KNN 1 True
1 5-KNN 2 False
2 10-KNN 3 False
如何正确创建此列?由于您没有最低限度的工作示例,因此我为
预测
列采用了人为值
Method Prediction is_best
0 1-KNN 1 True
1 5-KNN 2 True
2 10-KNN 3 True
这将提供以下输出
df_summary_sklearn = pd.DataFrame(columns=['Method','Prediction' , 'is_best'])
df_summary_sklearn['Method'] = ['1-KNN', '5-KNN', '10-KNN']
df_summary_sklearn['Prediction'] = [1, 2, 3]
# This returns a boolean array where the condition holds True.
df_summary_sklearn['Prediction'] == df_summary_sklearn['Prediction'].min()
# Set the is_best column to the result of the previous statement.
df_summary_sklearn['is_best'] = df_summary_sklearn['Prediction'] == df_summary_sklearn['Prediction'].min()
您可以用自己的值替换上例中的[1,2,3]
,比如问题中的[1,5,10\u fold]
>>> df_summary_sklearn
Method Prediction is_best
0 1-KNN 1 True
1 5-KNN 2 False
2 10-KNN 3 False