Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2021, 09:42   #1
ВалерийБ.
 
Регистрация: 07.01.2019
Сообщений: 9
По умолчанию Help Pandas

Всем доброго дня.
Нужна помощь знатоков. Есть Датафрейм wgi со столбцом fh_status где значения типов стран: "free", "partly free", "not free". Нужно создать маленький датафрейм, состоящий из двух столбцов:
fh_type: тип страны;
count: число стран данного типа.
Для дальнейшего построения диаграммы (barplot).
Как я понял я должен получить вот такой ДФ, в count числа примерные:
th_type count
0 free 14
1 party free 2
2 not free 11

Но у меня ничего не выходит

Мой код на данный момент:

dat = pd.DataFrame()
dat['fh_type'] = wgi['fh_status'].values
dat['count'] = dat['fh_type'].count()
dat

но он выдает:
fh_type count
0 Not Free 195
1 Not Free 195
2 Not Free 195
3 Not Free 195
4 Not Free 195

Подсчитывает только общее количество. Пробовал dat['count'] = dat['fh_type'].value_count() Выдает тот же результат, что и выше(((
Изображения
Тип файла: jpg 1.jpg (68.6 Кб, 13 просмотров)
ВалерийБ. вне форума Ответить с цитированием
Старый 23.08.2021, 10:34   #2
ВалерийБ.
 
Регистрация: 07.01.2019
Сообщений: 9
По умолчанию

Написал так:
dat = pd.DataFrame({'fh_type':['free', 'partly free', 'not free']})
dat['count'] = wgi['fh_status']
fr = dat[dat['count'] =='free'].count().sum()
pf = dat[dat['count'] =='partly free'].count().sum()
nf = dat[dat['count'] =='not free'].count().sum()

но выдает вот такой результат:
fh_type count
0 free NaN
1 partly free NaN
2 not free NaN

Последний раз редактировалось ВалерийБ.; 23.08.2021 в 10:36.
ВалерийБ. вне форума Ответить с цитированием
Старый 23.08.2021, 14:36   #3
ВалерийБ.
 
Регистрация: 07.01.2019
Сообщений: 9
По умолчанию

Решил)

dat = pd.DataFrame()
dat['count'] = wgi.groupby(["fh_status"])["fh_status"].count()
dat.reset_index(level=0, inplace=True)
dat.rename(columns = {'fh_status': 'fh_type'},inplace = True)
ВалерийБ. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура JSON для pandas dataframe freeddos Python 0 13.11.2020 12:04
Работа с таблицей excel в Pandas DataFrame. Solver`s Python 10 07.04.2020 11:21
pandas pivot (сводная таблица) многоуровневая phaggi Python 0 31.03.2020 19:39