I have a table containing full of movie genre, like this:
id | genre
---+----------------------------
1 | Drama, Romance, War
2 | Drama, Musical, Romance
3 | Adventure, Biography, Drama
Im looking for a way to get the most common word in the whole genre column and return it to a variable for further step in python.
I'm new to Python so I really don't know how to do it. Currently, I have these lines to connect to the database but don't know the way to get the most common word mentioned above.
conn = mysql.connect()
cursor = conn.cursor()
most_common_word = cursor.execute()
cursor.close()
conn.close()
3条答案
按热度按时间wgmfuz8q1#
First you need get list of words in each column. i.e create another table like
For clues how to do that you may check this question:
SQL split values to multiple rows
You can do that as temporary table if you wish or use transaction and rollback. Which one to choose depend of your data size and PC on which DB running.
After that query will be really simple
You also can do it using python, but if so it will not be a MySQL question at all. Need read table, create simple list of word+counter. If it new, add it, if exist - increase counter.
ubof19bj2#
To get the most common word in the genre column of your table, you can use the following steps:
To execute these queries and get the results in Python, you can use the cursor.execute() method and the cursor.fetchone() method as follows:
This code will execute the SQL query and return the most common word in the genre column as a tuple containing the word and its frequency. You can then access the word using the tuple index, like this:
lmyy7pcs3#
from collections import Counter
Connect to database and get rows from table
rows = ...
Create a list to hold all of the genres
genres = []
Loop through each row and split the genre string by the comma character
to create a list of individual genres
for row in rows: genre_list = row['genre'].split(',') genres.extend(genre_list)
Use a Counter to count the number of occurrences of each genre
genre_counts = Counter(genres)
Get the most common genre
most_common_genre = genre_counts.most_common(1)
Print the most common genre
print(most_common_genre)