如何从 Python Pandas DataFrame 中的循环结果中删除重复项?

Posted

技术标签:

【中文标题】如何从 Python Pandas DataFrame 中的循环结果中删除重复项?【英文标题】:How to remove duplicates from loop results in Python Pandas DataFrame? 【发布时间】:2021-05-22 11:46:12 【问题描述】:

我有如下 Python 数据框:

df = pd.DataFrame("ID1" : [1,2,3], "ID2" : [44,55,66])

然后我创建如下循环:

s_list = list()
t_list = list()

for s in df["ID1"].values:
    for t in df["ID2"].values:
        s_list.append(s)
        t_list.append(t)
        
        result = pd.DataFrame()
        result["res1"] = s_list
        result["res2"] = t_list
result

这个循环的结果如下:

并且我需要修复这个循环以达到这样的结果(所以相同的组合 ID1 x ID2 就像在 df 中一样):

【问题讨论】:

df.drop_duplicates?? 没有重复,我需要改变循环,在循环中实现一些改变没有outisde循环 我真的没有关注结果数据框中的内容。你能说得清楚一点吗? 在操作数据框时必须避免使用 for 循环。尽可能使用内置函数。 【参考方案1】:

尝试使用 pandas .to_list() 方法而不是 using 循环。

df = pd.DataFrame("ID1" : [1,2,3], "ID2" : [44,55,66])
s_list = df["ID1"].to_list()
t_list = df["ID2"].to_list()

结果如下:

s_list = [1, 2, 3]
t_list = [44, 55, 66]

s_listt_list 现在都是列表。通过print(type(your_list)) 进行测试,结果为<class 'list'>

【讨论】:

ehhh 好的,但我需要它在循环中执行,使用 to_list 很明显

以上是关于如何从 Python Pandas DataFrame 中的循环结果中删除重复项?的主要内容,如果未能解决你的问题,请参考以下文章

肝了3天,整理了90个Pandas案例!

Python Pandas Dataframe:规范化 0.01 到 0.99 之间的数据?

如何用pandas将某列one-hot编码后,修改原dataframe

如果数据类型错误,如何跳过加载到 Pandas 数据框的 excel 文件的行(检查类型)

Pandas库的学习

Python/Pandas:如何从 datetime64[ns] 转换为 datetime