我的数据框序列有2704行,列名“ index”下有不同的客户ID。 类似地,另一个数据框测试在列名“ index”下有8157行,具有不同的客户ID。我只想将客户ID保留在火车数据集中的测试数据框中。如何根据训练数据集中的客户ID值删除测试数据集中的行?
答案 0 :(得分:2)
您可以使用否定isin
来过滤掉id
中的train_X
test = test[~test['index'].isin(train_X['index'])]
要消除训练中的值,我们只需交换test
和train
。也就是说,请执行以下操作:
train_X = train_X[~train_X['index'].isin(test['index'])]
答案 1 :(得分:0)
@Sannia, 您可以通过使用pd.merge或对数据框进行过滤来实现,如下所示。
import pandas as pd
# Approach - 1
df_new = pd.merge(df1, df2[["index"]], on="index") # assuming df1 and df2 are your data frames
# Approach - 2
index_vals = df2["index"].tolist()
df1_new = df1[df1["index"].isin(index_vals)]