猿问

尝试将列表附加到数据框,并根据 ID 进行匹配

所以,我有一个包含 89 个字段的数据框。我只使用一对来进行 K_Means 聚类。我有 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() got an unexpected keyword argument 'index'


我希望我解释得很好。我在这里想念什么?


守着星空守着你
浏览 109回答 2
2回答

九州编程

我对此进行了尝试并完成了这项工作:代码:df=pd.DataFrame({'AccountID':['38380AT31','36295KCN1','3132KFBD3']})ls=[('38380AT31', 17), ('36295KCN1', 0), ('3132KFBD3', 14)]ls.sort()df.sort_values(by=['AccountID'],inplace=True)    #sorting both df and list to get the same AccountID in the right indexa=[]for i in range(0,len(ls)):    a.append(ls[i][1])         df['col']=a输出:df    AccountID   col2   3132KFBD3   141   36295KCN1   00   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')
随时随地看视频慕课网APP

相关分类

Python
我要回答