如何计算Python数据帧列中字符串的不同版本的出现次数?
我有一个数据帧 换言之: 一个男性已由男性/M/男性/男性表示 一个女性已经用女性,F,Fem表示 肯定回答表示为是/是/是 否定回答由否/否/否表示如何计算Python数据帧列中字符串的不同版本的出现次数?,python,pandas,dataframe,count,Python,Pandas,Dataframe,Count,我有一个数据帧 换言之: 一个男性已由男性/M/男性/男性表示 一个女性已经用女性,F,Fem表示 肯定回答表示为是/是/是 否定回答由否/否/否表示 因此,对于上面的数据框,我想在Python中计算男性的总数,total女性的数量,total积极响应的数量和total消极响应的数量。如何操作?首先,您可以获得每个值的计数: df.Gender.count_values() 然后添加要分组的值您需要的str[0]为每列选择第一个字母,转换为Trues,并通过sum对其进行比较和计数: df =
因此,对于上面的数据框,我想在Python中计算男性的总数,total女性的数量,total积极响应的数量和total消极响应的数量。如何操作?首先,您可以获得每个值的计数:
df.Gender.count_values()
然后添加要分组的值您需要的
str[0]
为每列选择第一个字母,转换为True
s,并通过sum
对其进行比较和计数:
df = pd.DataFrame(data={'Gender':['Male', 'MALE', 'Female', 'F', 'M'],
'Response': ['yes', 'N', 'no', 'nope', 'NO']})
print (df)
Gender Response
0 Male yes
1 MALE N
2 Female no
3 F nope
4 M NO
count = len(df.index)
males = (df['Gender'].str[0].str.lower() == 'm').sum()
females = (df['Gender'].str[0].str.lower() == 'f').sum()
yes = (df['Response'].str[0].str.lower() == 'y').sum()
no = (df['Response'].str[0].str.lower() == 'n').sum()
print (count)
5
print (males)
3
print (females)
2
print (yes)
1
print (no)
4
另一个解决方案是使用dict
对索引
值进行重命名,然后最后重命名:
a = df['Gender'].str[0].str.lower().value_counts()
b = df['Response'].str[0].str.lower().value_counts()
s = pd.concat([a,b])
s.loc['count'] = len(df.index)
d = {'m':'male', 'f':'female', 'y':'yes', 'n':'no'}
s = s.rename(index=d)
print (s)
male 3
female 2
no 4
yes 1
count 5
dtype: int64
您可以使用df.to_clipboard()获取数据帧的示例,它将帮助人们更好地掌握数据,而不是图像。