计算列中特定于操作系统的字符串数

2024-04-26 02:56:36 发布

您现在位置:Python中文网/ 问答频道 /正文

如何计算列中特定字符串的数字? 我想得到它占pandas列中字符串总数的百分比。你知道吗


Tags: 字符串pandas数字百分比总数
1条回答
网友
1楼 · 发布于 2024-04-26 02:56:36

我相信您需要检查布尔掩码的字符串a比较和mean

print (df['col'].eq('a').mean())
#same as
#print ((df['col'] == 'a').mean())

对于所有值^{}

print (df['col'].value_counts(normalize=True))

样品:

df = pd.DataFrame({'col':list('aaabbc')})
print (df)
  col
0   a
1   a
2   a
3   b
4   b
5   c

print (df['col'].eq('a').mean())
0.5

print (df['col'].value_counts(normalize=True))
a    0.500000
b    0.333333
c    0.166667
Name: col, dtype: float64

编辑:

如果None列中的value_count函数首先删除它:

df = pd.DataFrame({'col':['a','a','a','b','b','c',None]})
print (df)
    col
0     a
1     a
2     a
3     b
4     b
5     c
6  None

print (df['col'].eq('a').mean())
0.428571428571

#first drop NaN/Nones and then normalize
print (df['col'].value_counts(normalize=True))
a    0.500000
b    0.333333
c    0.166667
Name: col, dtype: float64

#convert None/None to string for count it
print (df['col'].astype(str).value_counts(normalize=True))
a       0.428571
b       0.285714
None    0.142857
c       0.142857
Name: col, dtype: float64

相关问题 更多 >