Добавить реверсированный фрейм данных в исходный фрейм данных - PullRequest
0 голосов
/ 22 октября 2018

Кто-нибудь знает, как добавить обратный кадр данных к данному кадру данных?Я представляю пути.Каждый уникальный id обозначает один путь в кадре данных.Учитывая столбцы x,y,t,id,frequency, я хочу обратить в основном значения x,y и добавить их во входной фрейм данных.Значение id должно увеличиваться, а значение frequency может оставаться таким же, как и в оригинале.Я имею в виду, что это не совсем чистый оборот, но больше похоже на приведенный здесь пример:

df1 = pd.DataFrame({'x':[1,1,2,9,9], 'y':[1,2,2,100,101],'t':[1,2,3,1,2],'id':[1,1,1,2,2]},'frequency':[5,5,5,1,1]})
x   y   t   id   frequency
1   1   1   1     5
1   2   2   1     5
2   2   3   1     5
9  100  1   2     1
9  101  2   2     1

должно стать:

x   y   t   id   frequency
1   1   1   1     5
1   2   2   1     5
2   2   3   1     5
9  100  1   2     1
9  101  2   2     1
-------------------   ---> here begins the reverse
2   2   1   3     5
1   2   2   3     5
1   1   3   3     5
9  101  1   4     1
9  100  2   4     1

Я пробовал некоторые подходы, но не смог найти решение.Кто-нибудь знает как это сделать?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Я придумал это сейчас.Кроме столбца t все, как я хочу, будет

import pandas as pd    
df1 = pd.DataFrame({'x':[1,1,2,9,9], 'y':[1,2,2,100,101],'t':[1,2,3,1,2],'id':[1,1,1,2,2],'frequency':[5,5,5,1,1]})
df2= df1[::-1]
id_amount=df2['id'].nunique()
df2['id'] = df2['id'].apply(lambda x: x + id_amount)   
df2=df2.sort_values(by=['id'])
df1=df1.append(df2)
0 голосов
/ 22 октября 2018

Попробуйте отсортировать исходный кадр, а затем добавить его к исходному кадру:

df.append(df.sort_values(by = 'frequency'))
...