gpt4 book ai didi

python-3.x - 根据产品描述和另一个键为数据框中的所有相似产品/行分配一个键

转载 作者:行者123 更新时间:2023-12-04 13:33:40 25 4
gpt4 key购买 nike

基于 3 个键/列 uniqueid 、 uniqueid2 和 uniqueid3 我需要生成一个列 new_key ,它将用一个键标记所有关联的产品/行。

 ```python 
df = pd.DataFrame({'uniqueid': {0: 'a', 1: 'b', 2: 'b', 3: 'c',
4: 'd', 5: 'd', 6: 'e', 7: 'e',8:'g',9:'g',10:'h',11:'l',12:'m'},
'uniqueid2': {0: 'a', 1: 'b', 2: 'b', 3: 'c',
4: 'd', 5: 'd', 6: 'e', 7: 'e',8:'g',9:'g',10:'h',11:'l',12:'l'},
'uniqueid3': {0: 'z', 1: 'y', 2: 'x', 3: 'y',
4: 'x', 5: 'v', 6: 'x', 7: 'u',8:'h',9:'i',10:'k',11:'k',12:'n'}})
```
我拥有的基于 uniqueid 、uniqueid2 和 uniqueid3 列的数据。我需要像已经在那里一样创建 new_key 。在这个虚拟数据中,除了第一个之外的所有行都基于第 1 列和第 2 列中的关联属于同一产品。
但我不确定如何进一步进行。需要快速帮助
Expected Output:


[1]: /image/yAl56.png

最佳答案

这将为您提供正确的输出,但我不确定这正是您想要做的以生成 new_key柱子。此解决方案检查 uniqueid2查看是否所有值在每个 uniqueid 中都是唯一的组以及整个uniqueid2柱子..

import pandas as pd
import numpy as np
df = pd.DataFrame({'uniqueid': {0: 'a', 1: 'b', 2: 'b', 3: 'c',
4: 'd', 5: 'd', 6: 'e', 7: 'e',8:'g',9:'g',10:'h',11:'l'},
'uniqueid2': {0: 'z', 1: 'y', 2: 'x', 3: 'y',
4: 'x', 5: 'v', 6: 'x', 7: 'u',8:'h',9:'i',10:'k',11:'k'}})
df['m1'] = (df.groupby('uniqueid2')['uniqueid2'].transform('count') == 1)
df['m2'] = (df.groupby('uniqueid')['m1'].transform(sum))
df['m3'] = (df.groupby('uniqueid')['uniqueid2'].transform('size'))
df['m4'] = (df.groupby('uniqueid')['uniqueid'].transform('count') == 1)
df['new_key'] = np.where((df['m2'] == df['m3']) | df['m4'], df['uniqueid'], 'b')
df
Out[13]:
uniqueid uniqueid2 m1 m2 m3 m4 new_key
0 a z True 1.0 1 True a
1 b y False 0.0 2 False b
2 b x False 0.0 2 False b
3 c y False 0.0 1 True c
4 d x False 1.0 2 False b
5 d v True 1.0 2 False b
6 e x False 1.0 2 False b
7 e u True 1.0 2 False b
8 g h True 2.0 2 False g
9 g i True 2.0 2 False g
10 h k False 0.0 1 True h
11 l k False 0.0 1 True l
我留着 m1 , m2m3 ,以便您可以看到逻辑的进展。您可以删除这些列: df = df.drop(['m1','m2','m3'], axis=1)

关于python-3.x - 根据产品描述和另一个键为数据框中的所有相似产品/行分配一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63534131/

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