我有一个熊猫数据框,看起来像:
location skills
0 Washington excel
1 Chicago
2 West Lebanon r excel
3 Midland
4 Washington sql java
5 Cincinnati sql java scala python.
6 Dover sas sql r spss
7 Dover sas c++ spss
当然还有更多的行。我想获取每个位置的“技能”列中每个唯一字符串的频率。
例如,对于位置多佛,我希望sas的频率为2,spss:2,r:1,excel:0,java:0等等......我将如何去做?
用于str.cat
组合列。然后拆分使用pd.value_counts
pd.value_counts(df.skills.str.cat(sep=' ').split())
sql 3
excel 2
java 2
spss 2
sas 2
r 2
scala 1
python. 1
c++ 1
dtype: int64
为了得到这个 location
f = lambda x: pd.value_counts(x.str.cat(sep=' ').split())
df.groupby('location').skills.apply(f).unstack(fill_value=0)
c++ excel java python. r sas scala spss sql
location
Cincinnati 0 0 1 1 0 0 1 0 1
Dover 1 0 0 0 1 2 0 2 1
Washington 0 1 1 0 0 0 0 0 1
West Lebanon 0 1 0 0 1 0 0 0 0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句