Python 将单词分开,在列中计数,然后在两个单词中分开
我有一个数据集: 话 计数 你好,世界 世界,%,你好,德国 德国,100毫升,德国 您可以为此使用:Python 将单词分开,在列中计数,然后在两个单词中分开,python,pandas,Python,Pandas,我有一个数据集: 话 计数 你好,世界 世界,%,你好,德国 德国,100毫升,德国 您可以为此使用: >>> df Words 0 Hello,World 1 World,%,Hello 2 Germany,100,ML >>> pd.Series(Counter(','.join(df.Words).split(',')), name='count').rename_axis(df.co
>>> df
Words
0 Hello,World
1 World,%,Hello
2 Germany,100,ML
>>> pd.Series(Counter(','.join(df.Words).split(',')),
name='count').rename_axis(df.columns[0]).reset_index()
Words count
0 Hello 2
1 World 2
2 % 1
3 Germany 1
4 100 1
5 ML 1
时间:
>>> %timeit pd.DataFrame(df['Words'].str.split(',').explode().value_counts()).reset_index().rename({'index':"Words","Words":"Count"},axis=1)
1.53 ms ± 30.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
>>> %timeit pd.Series(Counter(','.join(df.Words).split(',')), name='count').rename_axis(df.columns[0]).reset_index()
873 µs ± 15 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
您不能在熊猫中使用字符串模块:
df['Words'].str.split(',').explode().value_counts()
输出:
Hello 2
World 2
Germany 1
% 1
ML 1
100 1
Name: Words, dtype: int64
Words Count
0 Hello 2
1 World 2
2 Germany 1
3 % 1
4 ML 1
5 100 1
要使其成为数据帧,请执行以下操作:
pd.DataFrame(df['Words'].str.split(',').explode().value_counts()).reset_index().rename({'index':"Words","Words":"Count"},axis=1)
输出:
Hello 2
World 2
Germany 1
% 1
ML 1
100 1
Name: Words, dtype: int64
Words Count
0 Hello 2
1 World 2
2 Germany 1
3 % 1
4 ML 1
5 100 1
可以使用上述方法,而且它们是有效的 使用
str.dummies
和df.sum
df['Words'].str.get_dummies(",").sum()
% 1
100 1
Germany 1
Hello 2
ML 1
World 2
dtype: int64
来自集合导入计数器的
data=“,”.join(df[“Words”].tolist())
计数器=计数器(data.split(“,”))
新的数据帧(dict(计数器))
方法不错@阿迪拉巴吉尔谢谢你。。!