Python Pandas-计算列中的出现次数
我有一个包含19列混合数据类型的文件。其中一个列名包含由空格分隔的元素。例如: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(' ').
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
这个很整洁。工作就像一种享受。非常感谢。