gpt4 book ai didi

Python3,数组中的列名 - numpy 或 pandas

转载 作者:行者123 更新时间:2023-12-01 03:28:57 25 4
gpt4 key购买 nike

我有一个以下格式的数据集。

id  A   B   C   D   E
100 1 0 0 0 0
101 0 1 1 0 0
102 1 0 0 0 0
103 0 0 0 1 1

我想将其转换为以下内容:

100, A
101, B C
102, A
103, D E

我该怎么做?我尝试过 numpy argsort 但我是 Python 新手,发现这具有挑战性。感谢对此的任何帮助。

Python
df3 = df1.set_index("cust_id").apply(lambda col: ','.join(col[lambda x: x == 1].index), axis = 1)

Python
df3

cust_id
1375586 ind_cco_fin_ult1
1050611 ind_cco_fin_ult1
1050612 ind_deco_fin_ult1,ind_viv_fin_ult1
dtype: object

Python
df2

cust_id
1375586 ind_cco_fin_ult1
1050611 ind_cco_fin_ult1
1050612 ind_ctma_fin_ult1,ind_deco_fin_ult1
dtype: object

Python
指标.mapk(df2,df3,7)

0.82879818594104293

``` python list1=[['ind_cco_fin_ult1'], ['ind_cco_fin_ult1'], ['ind_deco_fin_ult1', 'ind_viv_fin_ult1'] ]list2=[['ind_cco_fin_ult1'], ['ind_cco_fin_ult1'], ['ind_ctma_fin_ult1', 'ind_deco_fin_ult1']]

```

Python
指标.mapk(列表2,列表1,7)

0.83333333333333337

非常感谢您的帮助,我尝试了几个步骤。我正在尝试测试 mapk,但 apply 方法似乎没有给出我真正需要的东西。

最佳答案

你可以这样做:

df.set_index("id").apply(lambda row: ' '.join(row[row == 1].index), axis = 1)

#id
#100 A
#101 B C
#102 A
#103 D E
#dtype: object

关于Python3,数组中的列名 - numpy 或 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41155146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com