Python Pandas добавляет данные с помощью цикла for



data = pnd.read_csv('csv/pop.csv')
data = data[['date_range','city','sum_pop']]
data['date_range']=pnd.to_datetime(data['date_range'])
data['date_range'] = data['date_range'].map(lambda x: x.strftime('%d.%m.%Y'))

cities_list = nmp.array(data['city'])
cities_list=nmp.unique(cities_list)

for k in cities_list:
    data = data[(data['city'] == k)]
    print(data)



Привет, я делаю небольшой анализ данных с помощью Python. Я хочу взять данные о населении в соответствии с названием города в разделе цикла For, а затем нарисовать графики населения каждого города. Я нарисовал графику без цикла for внизу. Я получаю следующий вывод с помощью «print (data) "

date_range                city  sum_pop
0      31.12.2018  Adana(Aladağ)-1757    16653
973    31.12.2017  Adana(Aladağ)-1757    15896
1945   31.12.2016  Adana(Aladağ)-1757    16333
2915   31.12.2015  Adana(Aladağ)-1757    16823
3885   31.12.2014  Adana(Aladağ)-1757    17113
4855   31.12.2013  Adana(Aladağ)-1757    17221
5825   31.12.2012  Adana(Aladağ)-1757    16951
6782   31.12.2011  Adana(Aladağ)-1757    17074
7739   31.12.2010  Adana(Aladağ)-1757    17169
8696   31.12.2009  Adana(Aladağ)-1757    17494
9653   31.12.2008  Adana(Aladağ)-1757    18249
10610  31.12.2007  Adana(Aladağ)-1757    17506
Empty DataFrame
Columns: [date_range, city, sum_pop]
Index: []
Empty DataFrame
Columns: [date_range, city, sum_pop]
Index: []
Empty DataFrame
Columns: [date_range, city, sum_pop]
Index: []
Empty DataFrame
Columns: [date_range, city, sum_pop]
Index: []
Empty DataFrame
Columns: [date_range, city, sum_pop]
Index: []

Как это исправить

Спасибо за Ваш ответ.

потому что в первый раз, когда вы говорите `data = data[(data['city'] == k)]`, вы перезаписываете полный набор данных с выбором, а другие названия городов больше не находятся в data. Используйте другое имя переменной в цикле for.

Craig 14.04.2019 18:35
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Все это можно сделать проще с помощью метода панд .groupby():

data = pnd.read_csv('csv/pop.csv')
data = data[['date_range','city','sum_pop']]
data['date_range']=pnd.to_datetime(data['date_range'])
data['date_range'] = data['date_range'].map(lambda x: x.strftime('%d.%m.%Y'))

for city_name, city_data in data.groupby('city'):
    print(city_data)

Документы pandas содержат множество примеров в Сгруппировать по: разделить-применить-объединить.

Другие вопросы по теме