gpt4 book ai didi

python - 获取 df 列中的哪个元素对于另一个 df 列中的每个单独元素出现最频繁(各种单独字符串的列表)

转载 作者:行者123 更新时间:2023-12-02 00:33:53 25 4
gpt4 key购买 nike

我的 pandas 数据框中有一列名为“标签”的列,它是多个字符串的列表。

[abc, 123, xyz]
[456, 123]
[abc, 123, xyz]

我还有另一个列技术,每个列都有一个字符串

win
mac
win

请告诉我是否有办法让我获得标签中每个元素最常出现的技术元素。例如,与其他技术相比,“abc”最常与“win”相关。所以输出应该如下所示:

abc win
123 win
xyz win
456 mac

最佳答案

IIUC,您可以展开 Tags 列并将crosstabidxmax 结合使用:

输入:

d = {'Tags':[['abc', 123, 'xyz'],[456, 123],['abc', 123, 'xyz']],
'tech':['win','mac','win']}
df = pd.DataFrame(d)
print(df)

Tags tech
0 [abc, 123, xyz] win
1 [456, 123] mac
2 [abc, 123, xyz] win

解决方案:

m = df.explode('Tags')
out = pd.crosstab(m['Tags'],m['tech']).idxmax(1)


Tags
123 win
456 mac
abc win
xyz win
dtype: object

关于python - 获取 df 列中的哪个元素对于另一个 df 列中的每个单独元素出现最频繁(各种单独字符串的列表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61046856/

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