Допустим, у меня есть данные, как показано ниже:
df=pd.DataFrame({'a':[1,4,3,2],'b':[1,2,3,4]})
df2=pd.DataFrame({'a':[1,2,3,4],'b':[1,2,3,4],'c':[34,56,7,55]})
Я бы хотел отсортировать df
данные по порядку df2
данных в столбце 'a'
, поэтому *Столбец 1007 * будет порядка df2.a
и того, что делает весь фрейм данных таким.
Желаемый вывод:
a b
0 1 1
1 2 4
2 3 3
3 4 2
(сделано вручную, и если естьошибка с этим, пожалуйста, скажите мне: D)
Моя собственная попытка:
df = df.set_index('a')
df = df.reindex(index=df2['a'])
df = df.reset_index()
print(df)
Работает, как ожидалось !!!,
Но когда у меня более длинные кадры данныхПример:
df=pd.DataFrame({'a':[1,4,3,2,3,4,5,3,5,6],'b':[1,2,3,4,5,5,5,6,6,7]})
df2=pd.DataFrame({'a':[1,2,3,4,3,4,5,6,4,5],'b':[1,2,4,3,4,5,6,7,4,3]})
Это не сработает, как и ожидалось.
Примечание: я не только хочу объяснить, почему, но мне также нужно решение, чтобы сделать это для больших данных-frames