如何从 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_list
和 t_list
现在都是列表。通过print(type(your_list))
进行测试,结果为<class 'list'>
【讨论】:
ehhh 好的,但我需要它在循环中执行,使用 to_list 很明显以上是关于如何从 Python Pandas DataFrame 中的循环结果中删除重复项?的主要内容,如果未能解决你的问题,请参考以下文章
Python Pandas Dataframe:规范化 0.01 到 0.99 之间的数据?
如何用pandas将某列one-hot编码后,修改原dataframe