Python 有多少受访者表示他们从事';MySQL';只有

Python 有多少受访者表示他们从事';MySQL';只有,python,pandas,Python,Pandas,我有一个数据框架,是从一项调查中提取的。我有两列:受访者的编号ID和他们使用的数据库 Respondent DatabaseWorkedWith 0 4 MySQL 1 4 SQLite 2 9 DynamoDB 3 9 PostgreSQL 4 9 SQLite ... ... ... 31370 25137 MySQL 31371 25138 PostgreSQL 31372 25141 Microsoft SQL S

我有一个数据框架,是从一项调查中提取的。我有两列:受访者的编号ID和他们使用的数据库

    Respondent  DatabaseWorkedWith
0   4   MySQL
1   4   SQLite
2   9   DynamoDB
3   9   PostgreSQL
4   9   SQLite
... ... ...
31370   25137   MySQL
31371   25138   PostgreSQL
31372   25141   Microsoft SQL Server
31373   25141   Redis
31374   25142   PostgreSQL

31375 rows × 2 columns
问题在标题上。我想统计一下第二列只有MySQL的受访者数量。我不确定是否应该使用unique、groupby或其他方法


谢谢

我想出了一个可能不是最实用的解决方案,但它奏效了

首先,我创建了一个对“DatabaseWorkedWith”列求和的数据帧:

resp_sum = df.groupby('Respondent').sum()

Respondent DatabaseWorkedWith
4   MySQLSQLite
9   DynamoDBPostgreSQLSQLite
13  CouchbaseDynamoDBFirebaseMySQL
16  MongoDBMicrosoft SQL ServerMySQL
17  MongoDBPostgreSQL
... ...
25136   Microsoft SQL Server
25137   MySQL
25138   PostgreSQL
25141   Microsoft SQL ServerRedis
25142   PostgreSQL

10945 rows × 1 column
使用新的数据框,我按“DatabaseWorkedWith”列计算,其中的值是“MySQL”

resp_sum[resp_sum['DatabaseWorkedWith']=='MySQL'].count()

DatabaseWorkedWith    474
dtype: int64
如果你们能提出一个更优雅的解决方案,我将不胜感激!
谢谢

如果您说“仅”,您的意思是具有相同
应答者编号的行对应于相同的应答者?因此,您希望查找具有
MySQL
的行,这样就不会有其他行具有相同的
响应者
?是的,这听起来好像你想根据代码< >应答者<代码>分组,这就是<代码> GROPBB< <代码>。当您尝试使用
.groupby
并查看结果时发生了什么?这看起来像是什么让你更接近一个解决方案吗?嗨@KarlKnechtel!是的,你说得对!我想检索只有MySQL的受访者数量,这意味着受访者#1不会有一行MySQL和一行MongoDB。使用
groupby
count
我可以看到每个受访者的语言数量。好的。对于你感兴趣的受访者,那些只使用MySQL的人,他们使用了多少种语言?您知道如何筛选groupby结果以获得这些受访者吗?然后你可以根据MySQL的实际响应者再次过滤它们,是吗?您可以尝试做的另一件事是组合他们使用的数据库的所有名称,并查找其中仅包含MySQL的组合。您可能还想参考。这可能会遇到声称同时使用“MyS”和“QL”的人。我很确定有一种方法可以获得组中的值列表,而不是串接字符串,但我实际上并不经常使用Pandas;我很擅长(我认为)告诉人们如何解决问题,如何使用搜索引擎和文档。事实上,这是有风险的,@KarlKnechtel!我会尝试找到一个更好的解决方案,并张贴它!不过,谢谢你的支持!