Как удалить и вернуть строку из кадра данных панд? - PullRequest
0 голосов
/ 24 октября 2019

У меня есть фрейм данных с индексированными n записями (0 - n). Я хочу удалить строку с индексом 'x' из кадра данных и сохранить ее в другом месте. По сути, я пытаюсь сделать эквивалент выполнения pop () из списка в Python. Есть ли какая-либо функция или простой способ сделать это с помощью pandas dataframes?

Я пытался использовать метод drop (), но он будет возвращать только тот же кадр данных с удаленной строкой.

dataframe df
row_needed = df.drop([2], axis=0)
)

С учетом кадра данных df:

  A B C D
0 x y z y
1 x y y y
2 y e r z

Я хотел бы, чтобы при возврате строки с индексом 1 было возвращено следующее значение и df обновлен как таковой:


  A B C D
0 x y z y
2 y e r z

Возвращена строка:

1 x y y y

1 Ответ

2 голосов
/ 24 октября 2019

Вы можете просто определить свою собственную функцию, которая выполняет отбрасывание на месте, но только после сохранения желаемого результата:

def drop_return(df, index):
    row = df.loc[index]
    df.drop(index, inplace=True)
    return row

С вашим примером:

In [16]: df
Out[16]:
   A  B  C  D
0  x  y  z  y
1  x  y  y  y
2  y  e  r  z

In [17]: drop_return(df, 1)
Out[17]:
A    x
B    y
C    y
D    y
Name: 1, dtype: object

In [18]: df
Out[18]:
   A  B  C  D
0  x  y  z  y
2  y  e  r  z
...