Создайте два кадра данных из данного кадра данных - PullRequest
0 голосов
/ 04 ноября 2018

Предположим, что у меня есть следующий фрейм данных

id  item_name      item_date   item_quantity
0   computer hp    01/10/2018   50
1   computer hp    02/10/2018  201
2   computer dell  01/10/2018  45
3   computer dell  02/10/2018  59

Я хотел бы создать два кадра данных из этого:

new_df1

id  item_name      item_date   item_quantity
0   computer hp    01/10/2018   50
1   computer hp    02/10/2018  201

new_df2

id  item_name      item_date   item_quantity
2   computer dell  01/10/2018  45
3   computer dell  02/10/2018  59

Можете ли вы объяснить мне, как сделать это с минимальным (?) Временем? Спасибо. Если вы не понимаете, просто дайте мне знать. Я перефразирую это;)

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Если вы просто хотите разделить фрейм данных по заданному индексу, используйте следующее:

import pandas as pd 



df = pd.DataFrame({'Date': [1, 2, 3, 4], 'B': [1, 2, 3, 2], 'C': ['A','B','C','D']})

n = 2

df1 = df[:n]
df2 = df[n:]




   Date  B  C
0     1  1  A
1     2  2  B
   Date  B  C
2     3  3  C
3     4  2  D
0 голосов
/ 04 ноября 2018

Вы можете группировать и использовать transform(min), чтобы найти минимальную дату в каждой группе, затем используйте np.split(), чтобы разделить индекс и создать новые кадры данных для каждой группы. Мин. Дата

# group df on name and the find the min date of each group
group = df.groupby('item_name')['item_date'].transform('min')

# filter find the matches of min date in the original df
x = df.loc[df['item_date'] == group]

# get the indices
idx = list(x.index.values)

# split the df into dfs
dfs = np.split(df, idx)

ДФС [1]

    id  item_name   item_date   item_quantity
0   0   computer hp 1/10/2018   50
1   1   computer hp 2/10/2018   201

ДФС [2]

    id  item_name   item_date   item_quantity
2   2   computer dell   1/10/2018   45
3   3   computer dell   2/10/2018   59
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...