Python 如何生成更高效的代码?(熊猫数据帧)

Python 如何生成更高效的代码?(熊猫数据帧),python,pandas,dataframe,Python,Pandas,Dataframe,我的代码: 这是我的密码 我想找到相同的键(用户id)和合并列(信息) 如果 我的代码太慢了。所以我想知道如何生成高效的代码 谢谢你的阅读 您可以使用sets尝试这种方法: import pandas as pd list1 = {"user_id": ["user1", "user2", "user1"], "info": [[1, 2, 3], [10, 20, 30], [2, 3, 4

我的代码:

这是我的密码

我想找到相同的键(用户id)和合并列(信息)

如果

我的代码太慢了。所以我想知道如何生成高效的代码


谢谢你的阅读

您可以使用
set
s尝试这种方法:

import pandas as pd

list1 = {"user_id": ["user1", "user2", "user1"], "info": [[1, 2, 3], [10, 20, 30], [2, 3, 4]]}

df = pd.DataFrame(data=list1)

aggregate_info = set()
df = df[df["user_id"] == "user1"]
info = list(df["info"])
for item in info:
    aggregate_info = set(item).union(aggregate_info)

print(f"user1: {list(aggregate_info)}")
这将为您提供:

user1: [1, 2, 3, 4]

一个简单的单行程序应该可以做到这一点:

将熊猫作为pd导入
df=pd.DataFrame.from_dict({
“用户id:[“测试”,“测试”,“用户1”,“用户1”,“用户1”],
“信息”:[1,2,3],[2,3,4],[1],[1,2,3,4,5],[1,5,7]]
})
打印(df)
#用户id信息
#0测试。[1, 2, 3]
#1个测试。[2, 3, 4]
#2用户1[1]
#3用户1[1,2,3,4,5]
#4用户1[1,5,7]
distinct_df=df.groupby('user_id').sum()['info'].apply(lambda x:sorted(set(x)).reset_index()
打印(不同的_-df)
#用户id信息
#0测试。[1, 2, 3, 4]
#1用户1[1,2,3,4,5,7]
您可以尝试:

df.info=df.groupby('user_id').info.apply(lambda x:set(x.sum()))

(或
list(set(x.sum())
如果您仍然希望
info
值成为列表)

谢谢您的回答。但速度差不多:)
user1: [1, 2, 3, 4]