python - 如何根据熊猫中的两列条件提取数据
问题描述
我有一个完整的数据集(336663,675)。我提取了数据集中最好的 50 个特征,即累积数据。现在我的数据集是 (336663,51)。我想基于 Chassis_id 列提取数据,例如(B-689653)和具有值(0,1)的目标列。我计算了一个唯一的Chassis_id,即 6675。我想提取 500 个具有目标值的唯一机箱 ID,至少 (1) 没有重复值 1,并且对于相同的机箱 ID,它也有 0 目标值。我的数据集看起来像。
chassis_id lx_pmu_p1fwm_engine_speed_torque_h_x_index_1 lx_pmu_p1fwm_engine_speed_torque_h_y_index_1 lx_pmu_p1fwm_engine_speed_torque_h_y_index_10 lx_pmu_p1fwm_engine_speed_torque_h_y_index_11 lx_pmu_p1fwm_engine_speed_torque_h_y_index_12 lx_pmu_p1fwm_engine_speed_torque_h_y_index_2 lx_pmu_p1fwm_engine_speed_torque_h_y_index_3 lx_pmu_p1fwm_engine_speed_torque_h_y_index_6 lx_pmu_p1fwm_engine_speed_torque_h_y_index_7 ... lx_pst_p1em9_12_pmairdryercartridgeresetvehicl lx_pst_p1em9_13_pmairdryercartridgeresetengine lx_total_vehicle_distance_rule_based x_pst_p1c2o_365_vdlcomprtotaltime_log age_months age_years index slx_pfe_0008_nbr_of_gearshifts lx_psc_p1bby_total_fuel_consumption target
0 B-689653 2021.500000 1781.000000 134.000000 116.500000 199.500000 1887.000000 411.500000 227.000000 203.000000 ... 3.966420e+08 2.576429e+07 407768.285714 2.886354e+07 49 4.1 59 1.097197e+06 168443.547071 0
1 B-689653 3189.833333 2122.000000 157.000000 136.000000 231.000000 2204.000000 467.000000 340.833333 234.000000 ... 4.218106e+08 2.747081e+07 472178.233333 3.344411e+07 56 4.7 73 1.258732e+06 194795.161889 0
2 B-689653 1271.538813 1131.897717 98.544292 86.657534 147.538813 1337.124201 296.357991 166.649315 149.873059 ... 2.797100e+08 1.720796e+07 313343.510638 2.057084e+07 37 3.1 34 8.198200e+05 129537.235780 0
3 B-689653 751.934132 641.526946 62.425150 54.425150 94.095808 869.185629 189.610778 109.347305 96.263473 ... 1.501943e+08 8.925830e+06 202014.000000 1.287711e+07 22 1.8 4 5.264317e+05 81851.484950 0
4 B-689653 882.568862 784.449102 73.419162 65.419162 110.263473 1001.760479 225.179641 127.455090 113.724551 ... 1.958617e+08 1.174458e+07 231647.428571 1.469532e+07 25 2.1 11 6.159844e+05 93664.449960 0
5 rows × 52 columns
我已经使用了代码,但它没有工作。
形状的主要数据集(336663,675)
data = pd.read_csv("prodcut_data.csv", low_memory=False, na_values='?')
我提取了最好的 50 个特征数据
data1 = pd.read_csv("LVD-F_selc_F_extr.csv", low_memory=False, na_values='?')
我在其他数据框中有 chassis_id 所以,我将它与提取的最佳 50 个特征数据连接起来。
data2 = pd.concat([data.chassis_id, data1], axis=1)
mask = (data2[data2['target'].eq(1)].duplicated(subset['chassis_id']).reindex(data2.index,fill_value=False))
data2 = data2[~mask]
print(data2)
此代码将所有数据集返回给我。不是想要的
解决方案
推荐阅读
- android - 在 API 级别 23+ 上准备的媒体播放器失败
- vue.js - 从数组数据初始化 for 循环中的组件
- sharepoint - 如何从 Sharepoint 在线下载文件
- azure - 我收到包含多个已处理数据的下游消息
- r - ggplot2按年叠加折线图?
- c# - 如何使用 Entity Framework 在 SQL Azure 中平均 DateTime 值?
- forecasting - TSLM 和固定数据
- continuous-delivery - 在 Continuum 中,如何计算风险和高风险文件并将其包含在“风险”指标中?
- excel - 将名称和日期添加到新选项卡
- c# - 从我的服务器下载 zip 文件时遇到问题