为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守着星空守着你 2022-07-05 19:01:23
所以,我有一个包含 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'我希望我解释得很好。我在这里想念什么?
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

我对此进行了尝试并完成了这项工作:


代码:


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 index


a=[]

for i in range(0,len(ls)):

    a.append(ls[i][1])         


df['col']=a

输出:


df


    AccountID   col

2   3132KFBD3   14

1   36295KCN1   0

0   38380AT31   17 

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


查看完整回答
反对 回复 2022-07-05
?
慕森卡

TA贡献1806条经验 获得超8个赞

我做了更多的研究并想出了这个。


details_df = pd.DataFrame(details)

details_df.columns = ['AccountNo','ClusterID']

finalDF = pd.merge(dataset, details_df, left_index=False, right_index=False, how='inner')


查看完整回答
反对 回复 2022-07-05
  • 2 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信