Посчитать кол-во всех стран из list
Пытаюсь понять как можно считать кол-во всех стран из базы данных.
import pandas as pd
file_url = "https://drive.google.com/file/d/1LTpeRRuLgts3MDOBzvuSI6idL0no24AW/view?usp=sharing"
file_path = 'https://drive.google.com/uc?export=download&id=' + file_url.split('/')[-2]
data = pd.read_csv(file_path,encoding = "ISO-8859-1")
data=data.drop(['IMDb Link', 'Awards Received', 'Awards Nominated For', 'Image', 'Poster','Production House','TMDb Trailer','Trailer Site'],axis=1)
Нашла в интернете такой алгоритм
Country=data['Country Availability'].values.tolist()
lst_no = ['.', ',', ':', '!', '"', "'", '[', ']', '-', '—', '(', ')', ' ' ]
lst = []
for i in range(0,len(Country)):
for word in str(Country[i]).split():
if not word in lst_no:
_word = word
if word[-1] in lst_no:
_word = _word[:-1]
if word[0] in lst_no:
_word = _word[1:]
lst.append(_word)
_dict = dict()
for word in lst:
_dict[word] = _dict.get(word, 0) + 1
lst = []
for key, value in _dict.items():
lst.append((value, key))
lst.sort(reverse=True)
dic=dict(lst)
print(dic)
Но почему-то в этом случае он не работает. Получаю такой ответ.
1:
'States,Hungary,Turkey,Canada,Argentina,Mexico,Malaysia,Brazil,Netherlands,Italy,Israel,Colombia',
2: 'States,Greece,Slovakia,Thailand,Turkey,Malaysia,Brazil,Italy,Iceland,Israel,India,Mexico,Colombia',
3: 'Kingdom,France,India,Russia,Greece,Slovakia,Singapore,Poland,Czech',
4: 'States,Canada,Australia,Mexico,Argentina,Sweden,France,United',
5: 'Republic,Lithuania,Israel,Iceland,Romania,South',
6: 'Belgium,Brazil,United',
7: 'States,Canada,Germany,Mexico,Argentina,Sweden,France,United',
8: 'States,Canada,Mexico,Argentina,Sweden,United',
9: 'States,Germany,Argentina,Mexico,Brazil,Spain,Portugal,India,Russia,Greece,South',
10: 'Kingdom,France,Australia,Belgium,Canada,Netherlands,Sweden,Switzerland,United',
11: 'Republic,Romania,Russia,Greece,Poland,South',
Помогите разобраться пожалуйста.
Ответы (1 шт):
Автор решения: SergFSM
→ Ссылка
в 'Country Availability' страны разделены запятыми, а в вашем коде сплит по пробелу split()
вот так вы получите список стран и сколько раз каждая страна встречается, в отсортированном виде (сперва самые частые):
data['Country Availability'].str.split(',').explode().value_counts()
>>> out
'''
United Kingdom 6311
Czech Republic 6237
Japan 6115
Hungary 5989
Canada 5930
Thailand 5876
Singapore 5876
India 5826
Slovakia 5820
Australia 5820
Romania 5759
United States 5718
South Africa 5553
Lithuania 5541
Germany 5539
Russia 5491
Switzerland 5472
Belgium 5437
Malaysia 5394
Iceland 5364
Greece 5324
Israel 5198
France 5194
Hong Kong 5188
Mexico 5148
Italy 5141
Argentina 5138
Poland 5136
Brazil 5057
Netherlands 5021
Spain 5010
Colombia 4867
South Korea 4845
Turkey 4814
Sweden 4751
Portugal 4685
Name: Country Availability, dtype: int64