Как разделить фрейм данных на основе определенных значений в столбце итеративным способом и создать новый фрейм данных? - PullRequest
1 голос
/ 09 июля 2019

У меня есть фрейм данных pandas, и я хочу перебрать строки этого фрейма, получить фрагменты данных на основе значения в столбце.

Короче говоря, у меня есть такой кадр данных:

districts = [['dist','name','sale','purchase'],['dis1','avelin',2300, 1400],['dis2','matri', 4300, 2500], ['dis1', 'texi', 1500, 1700],['dis2','timi', 2300, 1400]]

Я бы хотел перебрать все строки и извлечь кадры данных на основе столбца dist.
вывод должен выглядеть следующим образом:

dis1 = [[2300, 1400], [1500,1700]]
dis2 = [[4300,2500],[2300,1400]]  

1 Ответ

1 голос
/ 09 июля 2019

В качестве предисловия вы на самом деле не работаете с пандами, так как в данный момент ваш код настроен. У вас есть список списков, но это не кадр данных Pandas. Чтобы на самом деле работать с пандами:

districts = [['dis1','avelin',2300, 1400],
             ['dis2','matri', 4300, 2500],
             ['dis1', 'texi', 1500, 1700],
             ['dis2','timi', 2300, 1400]]
df = pd.DataFrame(data=districts, columns=['dist','name','sale','purchase'])

Оттуда процесс подстановки фреймов данных прост - «итерация» не требуется (и редко бывает при работе с пандами):

dis1 = df.loc[df['dist'] == 'dis1']
dis2 = df.loc[df['dist'] == 'dis2']

Это дает результат:

   dist    name  sale  purchase
0  dis1  avelin  2300      1400
2  dis1    texi  1500      1700

   dist   name  sale  purchase
1  dis2  matri  4300      2500
3  dis2   timi  2300      1400

Если вы этого еще не сделали, вам следует прочитать справочные страницы панд - например, Начало работы и Индексирование и выбор данных страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...