我有一个数据框,我想在其中计算整个数据框中特定列中的单词数。
假设 shape
是数据框中的一列:
shape color
circle rectangle orange
square triangle
rombus
square oval black
triangle circle
rectangle oval white
triangle
我想在 shape
列中计算数据框中有多少个圆形、矩形、椭圆形、三角形。
输出应该是:
circle 2
rectangle 2
triangle 3
oval 1
最佳答案
使用:
L = ['circle','rectangle','oval','triangle']
s = df['shape'].astype(str).str.split(expand=True).stack()
df = s[s.isin(L)].value_counts().reindex(L, fill_value=0).reset_index()
df.columns = ['vals','counts']
print (df)
vals counts
0 circle 2
1 rectangle 2
2 oval 2
3 triangle 3
解释:
- 第一个
split
按空格(默认分隔符)和stack
对于Series
单词 - 按
isin
过滤按list
中的值
- 用于计数
value_counts
- 如有必要,更改顺序或使用
0
添加缺失值 添加reindex
- 对于
Series
中的DataFrame
添加reset_index
关于python - 如何计算数据框中所有等于条件的选定单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51766834/