python中有多少用户具有相同的字符串值
我想知道有多少用户具有相同的字符串值 数据是python dataframe类型的,值的顺序无关紧要,只要x-y与y-x相同,就应该进行计数python中有多少用户具有相同的字符串值,python,pandas,Python,Pandas,我想知道有多少用户具有相同的字符串值 数据是python dataframe类型的,值的顺序无关紧要,只要x-y与y-x相同,就应该进行计数 user_id value 1 x 1 y 2 x 2 y 2 z 3 x 3 z Combination #of user x-y 2 x-z
user_id value
1 x
1 y
2 x
2 y
2 z
3 x
3 z
Combination #of user
x-y 2
x-z 2
y-z 1
按组创建组合,然后按链展平值。按计数器从“iterable”和“count”:
请将你已经尝试过的内容和发现的错误张贴出来,以便人们能够帮助你。你可能应该重新措辞这个问题,使其更具可读性-这是非常不可理解的!非常感谢。
from itertools import combinations, chain
from collections import Counter
s = df.groupby('user_id')['value'].apply(lambda x: list(map( '-'.join, combinations(x, 2))))
#if necessary sorted combinations
#s = (df.groupby('user_id')['value']
# .apply(lambda x: ['-'.join(sorted(y)) for y in combinations(x, 2)]))
d = Counter(chain.from_iterable(s))
df = pd.DataFrame({'Combination': list(d.keys()),
'user':list(d.values())})
print (df)
Combination user
0 x-y 2
1 x-z 2
2 y-z 1