Python 尝试将列表附加到数据帧,并基于ID进行匹配

Python 尝试将列表附加到数据帧,并基于ID进行匹配,python,python-3.x,Python,Python 3.x,因此,我有一个包含89个字段的数据帧。我只是用一对夫妇来做K_意味着集群。我有AccountID和每个ID所属的集群。以下是名为“详细信息”的列表 ('38380AT31', 17), ('36295KCN1', 0), ('3132KFBD3', 14), ('3130A8X40', 14), ('912796SD2', 22), ('3617AVGD4', 0), ('03H0716A9', 0), ('912828LA6', 22), ('3133EJY29', 8),

因此,我有一个包含89个字段的数据帧。我只是用一对夫妇来做K_意味着集群。我有AccountID和每个ID所属的集群。以下是名为“详细信息”的列表

 ('38380AT31', 17),
 ('36295KCN1', 0),
 ('3132KFBD3', 14),
 ('3130A8X40', 14),
 ('912796SD2', 22),
 ('3617AVGD4', 0),
 ('03H0716A9', 0),
 ('912828LA6', 22),
 ('3133EJY29', 8),
 ('36176DHG1', 0),
 ...]
现在,我正试图找出如何向现有数据帧添加一个新字段,并将集群ID与适当的帐户ID相匹配。我试过下面这行代码

df = df.append(details, ignore_index=True)
这将运行,但它似乎没有将集群ID附加到数据帧(并且ignore_index=True看起来可疑)。然后,我尝试了这行代码

df['details'] = df.append([details],index=df['AccountID'].index)
这会引发一个错误,声明:
TypeError:append()获得了一个意外的关键字参数“index”


我希望我解释得足够好。我在这里遗漏了什么?

我尝试了一下并完成了:

代码:

df

    AccountID   col
2   3132KFBD3   14
1   36295KCN1   0
0   38380AT31   17 
df=pd.DataFrame({'AccountID':['38380AT31','36295KCN1','3132KFBD3']})
ls=[('38380AT31',17),
('36295KCN1',0),
('3132KFBD3',14)]
ls.sort()
排序_值(by=['AccountID'],inplace=True)#对df和list进行排序,以在正确的索引中获得相同的AccountID
a=[]
对于范围(0,len(ls))中的i:
a、 附加(ls[i][1])
df['col']=a
输出:

df

    AccountID   col
2   3132KFBD3   14
1   36295KCN1   0
0   38380AT31   17 

这假设列表没有重复项,并且正确计数为数据帧。这是一个粗糙的方法,但它会完成工作

谢谢你的关注。我做了更多的研究,得出了这个结论

details_df = pd.DataFrame(details)
details_df.columns = ['AccountNo','ClusterID']
finalDF = pd.merge(dataset, details_df, left_index=False, right_index=False, how='inner')

df['details']=np。数组(details)
是我通常做的事情。如果
details
的长度与您的
df
的长度相同,那么这将起作用。当我这样做时:len(details)df.shape我看到两个都是10000条记录。这正是我所期望的。当我运行代码时,我得到了以下错误:ValueError:传递的项目数错误2,placement意味着1。另外,是否应该有一种方法匹配AccountID?否则,您如何保证列表中的ClusterID与dataframe中的正确AccountID相关联?