2024-05-05 08:56:36 发布
网友
在下面的数据框中,我有一个值列表,如何从列表中重复前2个值?你知道吗
数据帧:
user pro A [AA,AA,AA,BB,CC,AA,AA,CC,CC,BB] B [AA, BB, EE,BB,BB,EE,AA,CC,BB,EE] C [EE,EE,EE,CC,CC,CC,CC,DD,DD,AA] D [DD,AA,AA,AA,AA,AA,BB,BB,BB]
预期产量:
A [AA,CC] B [BB,EE] C [CC,EE] D [AA,BB]
使用^{}:
from collections import Counter df['new'] = df['pro'].apply(lambda x: [k for k, v in Counter(x).most_common(2)]) print (df) user pro new 0 A [AA, AA, AA, BB, CC, AA, AA, CC, CC, BB] [AA, CC] 1 B [AA, BB, EE, BB, BB, EE, AA, CC, BB, EE] [BB, EE] 2 C [EE, EE, EE, CC, CC, CC, CC, DD, DD, AA] [CC, EE] 3 D [DD, AA, AA, AA, AA, AA, BB, BB, BB] [AA, BB]
谢谢@jpp:
df['common'] = [list(zip(*d.most_common(2)))[0] for d in df['pro'].map(Counter)]
感谢@cᴏʟᴅsᴘᴇᴇᴅ:
df['common'] = df.pro.map(lambda x: [k for k, v in Counter(x).most_common(2)])
不知道collections.Counter.most_common我想到了:
from collections import Counter df['result'] = df['pro'].apply(lambda x: [i[0] for i in sorted(Counter(x).items(), key=lambda x: -x[1])[:2]])
使用^{} :
谢谢@jpp:
感谢@cᴏʟᴅsᴘᴇᴇᴅ:
不知道collections.Counter.most_common我想到了:
相关问题 更多 >
编程相关推荐