Python Pandas-计算列中的出现次数

Python Pandas-计算列中的出现次数,python,pandas,Python,Pandas,我有一个包含19列混合数据类型的文件。其中一个列名包含由空格分隔的元素。例如: Col1 Col2 adress1 x adress2 a b adress3 x c adress4 a x d 我想做的是遍历Col2,找出每个元素出现的次数,并将结果与Col1中对应的结果一起放入一个新列 注意:以上列已作为数据帧处理。 我有一些这样的结果,但不是我最终想要的 new_df = pd.Dataframe(old_df.Col2.str.split(' ').

我有一个包含19列混合数据类型的文件。其中一个列名包含由空格分隔的元素。例如:

Col1     Col2      
adress1   x
adress2   a b
adress3   x c
adress4   a x d
我想做的是遍历Col2,找出每个元素出现的次数,并将结果与Col1中对应的结果一起放入一个新列

注意:以上列已作为数据帧处理。 我有一些这样的结果,但不是我最终想要的

new_df = pd.Dataframe(old_df.Col2.str.split(' ').tolist(), index=old_df.Col1).stack
如何将结果放入一个新列(替换Col2)中,同时保留其余列

比如:

Col1     Col2      Col3
adress1   x        something
adress2   a        something1 
adress2   b        something1
adress3   x        NaN
adress3   c        NaN

还可以计算Col2中项目的出现率?

我们可以先进行
拆分
,然后进行
分解

s=df.assign(Col2=df.Col2.str.split()).explode('Col2')
s=s.groupby(['Col1','Col2']).size().to_frame('count').reset_index()
Out[48]: 
      Col1 Col2  count
0  adress1    x      1
1  adress2    a      1
2  adress2    b      1
3  adress3    c      1
4  adress3    x      1
5  adress4    a      1
6  adress4    d      1
7  adress4    x      1

这个很整洁。工作就像一种享受。非常感谢。