Разделить один фрейм данных на несколько на основе индекса в Pandas - PullRequest
1 голос
/ 05 августа 2020

Учитывая небольшой набор данных, как показано ниже, скажем, для каждого города есть две записи:

  city  price  quantity
0   bj  10104      5934
1   bj   5423       623
2   sh  15728      9105
3   sh    533        76
4   gz   4012      3558
5   gz    523      7632
6   sz   3770      1946
7   sz   6237      7364

Я хочу разделить этот набор данных на две на основе следующих logi c: первая запись из всех города должны быть df1, индекс - 0, 2, 4, 6, а вторая запись всех городов - df2, индекс - 1, 3, 5, 7.

Окончательные результаты будут такими:

df1:

  city  price  quantity
0   bj  10104      5934
2   sh  15728      9105
4   gz   4012      3558
6   sz   3770      1946

df2:

  city  price  quantity
1   bj   5423       623
3   sh    533        76
5   gz    523      7632
7   sz   6237      7364

Как я мог сделать это в Pandas? Спасибо.

1 Ответ

3 голосов
/ 05 августа 2020

Вы можете выбрать пары и разорвать пары путем индексации:

df1 = df.iloc[::2]
print (df1)
  city  price  quantity
0   bj  10104      5934
2   sh  15728      9105
4   gz   4012      3558
6   sz   3770      1946

df2 = df.iloc[1::2]
print (df2)
  city  price  quantity
1   bj   5423       623
3   sh    533        76
5   gz    523      7632
7   sz   6237      7364
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...