我有两个具有相同值但列顺序和索引不同的数据框。
df1=
index col1 col2 col3 col4
----------------------------------
0 1 2017 1.3 1
1 2 2017 2.4 1
2 3 2017 3.5 0
3 1 2018 3.5 0
df2=
index col3 col1 col2 col4
------------------------------------
0 1 2018 3.5 0
1 3 2017 3.5 0
2 1 2017 1.3 1
3 2 2017 2.4 1
有没有一种方法可以使一个变得与另一个相同?
我找到了一种对列进行排序的方法
df1 = df1[df2.columns]
但是我找不到重新排序行的方法。
答案 0 :(得分:2)
这行吗?
df1.sort_values(by='col3') # change to the column you want to sort the rows by
您可以使用列表按多列排序
df1.sort_values(by=df2.columns)
df1.sort_values(by=['col3', 'col4'])
默认情况下,sort_values
以升序排序。如果要按降序对行进行排序,可以使用以下命令:
df1.sort_values(by=['col3', 'col4'], ascending=False)
答案 1 :(得分:0)
您是否尝试过使用df.index进行排序?
df1.sort_values(by = df2.index,axis = 1,inplace = True)