У меня есть полный набор данных (336663,675) . Я извлек 50 лучших функций из набора данных, который представляет собой совокупные данные. Теперь мой набор данных (336663,51). Я хочу извлечь данные на основе столбца Chassis_id, например (B-689653) и столбца Target со значением (0,1). Я вычислил уникальный Chassis_id , равный 6675. Я хочу извлечь 500 уникальных chassis_id, у которых есть целевое значение по крайней мере (1), нет повторяющегося значения 1, и оно также имеет 0 целевых значений для того же chassis_id. Мой набор данных выглядит следующим образом.
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)
Этот код возвращает мне весь набор данных. не желаемый