将反向数据框追加到原始数据框

时间:2018-10-22 14:58:20

标签: python pandas dataframe reverse

有人知道如何将反向数据帧附加到给定的数据帧吗?我代表道路。每个唯一的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 :(得分:1)

尝试对原始框架进行排序,然后将其附加到原始框架:

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

答案 1 :(得分:0)

我现在想到了这个。除了第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)