Python 3.x 如何用另一个携带正确用户ID的数据帧替换由于多次登录而在df中重复多次的用户ID?

Python 3.x 如何用另一个携带正确用户ID的数据帧替换由于多次登录而在df中重复多次的用户ID?,python-3.x,pandas,dataframe,merge,Python 3.x,Pandas,Dataframe,Merge,我有一个4M+行的大数据集(df),显示了今年2月到5月appr 14k唯一用户ID的登录行为。我发现只有一部分大df是相关的,因为我需要查看与这些14k用户ID的一半对应的数量。这个用户ID的其他列表必须与大型df集成,并删除我不想看到的用户ID。你怎么能这么做 要举例说明我的观点,请查看以下内容: 我需要从另一个数据框导入其他用户ID的列表,以替换下面“user_Name”列的内容。本质上,导入的列表包含许多已在“user_Name”中列出的相同用户ID,因此实际上,我的任务是删除与“use

我有一个4M+行的大数据集(df),显示了今年2月到5月appr 14k唯一用户ID的登录行为。我发现只有一部分大df是相关的,因为我需要查看与这些14k用户ID的一半对应的数量。这个用户ID的其他列表必须与大型df集成,并删除我不想看到的用户ID。你怎么能这么做

要举例说明我的观点,请查看以下内容:

我需要从另一个数据框导入其他用户ID的列表,以替换下面“user_Name”列的内容。本质上,导入的列表包含许多已在“user_Name”中列出的相同用户ID,因此实际上,我的任务是删除与“user_Name”不相关的用户ID。“User_Name”列多次包含许多用户ID(尽管下面的示例没有直接指出这一点)

那么,我如何告诉pandas将一个6.6k唯一用户ID列表与一个14k唯一用户ID列表进行匹配(每个ID都列出多次,因为随着时间的推移会有很多次登录),然后扔掉与14k用户ID不相关的用户ID

为了创建包含6.6k用户ID的列表,我这样做了(注意代码末尾的df3=pd.merge(dataset,all_data,how='internal',…..)行)。我首先从列表中删除了重复项,最后得到了6.6k行,从25k行开始:

dataset = pd.read_csv("...\\listing_unique_students_all.csv", sep=";", encoding="utf-8", low_memory=False).dropna()
all_data = pd.read_csv("...\\Approved_S_numbers_Cand_Dipl_Bach.csv", sep=";", encoding="ISO-8859-1")

dataset['User Name'] = pd.to_numeric(dataset['User Name'], errors='coerce')

# Rows containing duplicate data
print("\nRows containing duplicate data")

duplicate_rows_dataset = dataset[dataset.duplicated()]
print("Number of duplicate rows: ", duplicate_rows_dataset.shape)

# Dropping the duplicates
print("\nDropping the duplicates")

drop_duplicates = dataset.drop_duplicates()

print("\ndrop_duplicates.head(25)")
print(drop_duplicates.head(25))

print("\ndrop_duplicates.shape")
print(drop_duplicates.shape)

dataset = drop_duplicates
dataset.columns = ['User Name'])

print("\nall_data.columns")
print(all_data.columns)

df3 = pd.merge(dataset, all_data, how='inner', left_on='User Name', right_on='studienr')

print("\ndf3")
print(df3.head())

print("\ndf3.shape")
print(df3.shape)
dataset = pd.read_csv("...\\listing_unique_students_all.csv", sep=";", encoding="utf-8", low_memory=False).dropna()
all_data = pd.read_csv("...\\Approved_S_numbers_Cand_Dipl_Bach.csv", sep=";", encoding="ISO-8859-1")

dataset['User Name'] = pd.to_numeric(dataset['User Name'], errors='coerce')

# Rows containing duplicate data
print("\nRows containing duplicate data")

duplicate_rows_dataset = dataset[dataset.duplicated()]
print("Number of duplicate rows: ", duplicate_rows_dataset.shape)

# Dropping the duplicates
print("\nDropping the duplicates")

drop_duplicates = dataset.drop_duplicates()

print("\ndrop_duplicates.head(25)")
print(drop_duplicates.head(25))

print("\ndrop_duplicates.shape")
print(drop_duplicates.shape)

dataset = drop_duplicates
dataset.columns = ['User Name'])

print("\nall_data.columns")
print(all_data.columns)

df3 = pd.merge(dataset, all_data, how='inner', left_on='User Name', right_on='studienr')

print("\ndf3")
print(df3.head())

print("\ndf3.shape")
print(df3.shape)