python - 从原始数据集中查找数据点的标签:函数
问题描述
我有这个函数,它从数据集中获取一个数据点(这里是所有 X1 到 X16),并从作为 df_all 提供的原始数据集中查找/读取它的标签(这里是“类”):
def label_finder(df_all,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,
X14,X15,X16):
y_new_data= df_all.loc[(df_all['X1'] == X1)
& (df_all['X2'] == X2)
& (df_all['X3'] == X3)
& (df_all['X4'] == X4)
& (df_all['X5'] == X5)
& (df_all['X6'] == X6)
& (df_all['X7'] == X7)
& (df_all['X8'] == X8)
& (df_all['X9'] == X9)
& (df_all['X10'] == X10)
& (df_all['X11'] == X11)
& (df_all['X12'] == X12)
& (df_all['X13'] == X13)
& (df_all['X14'] == X14)
& (df_all['X15'] == X15)
& (df_all['X16'] == X16),'class']
return y_new_data
问题是我不想写所有那些 X1,X2,... Xn。
假设我有一个包含 60 个特征的数据集,那么我需要编写 X1,X2,...,X60!
如何修复此功能?
解决方案
您可以执行以下操作:
cols = ['X1', 'X2', ..., 'X60']
# or you can write col as
cols = ['X'+str(i) for i in range(1,61)]
def label_finder(df_all,x):
return df_all.loc[(df_all[cols] == x).all(axis=1),'class']
x = [X1, X2, ..., X60]
y_new_data = label_finder(df_all,x)
推荐阅读
- reporting-services - 如何强制用户在 Dynamics 365 中运行报表之前设置报表筛选条件
- python - 函数参数最佳实践:dict vs kwargs
- jenkins - 从文件名 Jenkinsfile 阶段删除 .csv 部分
- java - Spring Cloud Gateway 修改 Flux 的ResponseBody
- javascript - 为什么日期没有出现在
?
- excel - 我无法增加包含 COUNTIF 和 INDIRECT 的公式中使用的范围
- python - 不使用鼠标关闭 pygame
- c - 为什么我的数据没有完全添加到我的阵列中?
- ocaml - 在列表 ocaml 中插入元素
- excel - B行中每个单元格的三个条件格式规则-需要帮助复制整个表格