gpt4 book ai didi

python-3.x - 根据 Python 中另一个数据帧的列对一个数据帧的行(具有重复项的列)进行排序

转载 作者:行者123 更新时间:2023-12-03 23:43:38 26 4
gpt4 key购买 nike

我有两个数据框 df1df2 .我要订购 df1基于列 SET (它有 SET 列的重复项,但没有其他列)按列 SETf 的顺序列数据框df2 .df1 :-

SET    Date      cust_ID  TYPE  amt     total flag LEVEL
A 6/10/2019 113252981 R 1317 16237 Y 3
C 6/18/2019 112010871 R 4582 12455 Y 2
B 6/22/2019 204671333 S 2364 24311 Y 1
B 6/22/2019 202770598 S 4721 10582 Y 1
B 6/22/2019 202706466 S 1904 25343 N 2
B 6/22/2019 202669668 S 3713 25166 N 1
B 6/22/2019 202754932 T 4792 16888 Y 2
D 6/7/2019 120304631 P 4968 25297 Y 2
D 6/7/2019 112353651 P 1622 14384 Y 3
D 6/7/2019 112349221 P 4721 15878 Y 3
D 6/8/2019 111197161 P 4490 25489 N 2
E 6/8/2019 137049981 Q 4409 10842 Y 2
A 6/8/2019 137281821 Q 1060 24085 Y 2
C 6/8/2019 136390501 Q 1649 13626 N 2
C 6/9/2019 136326431 Q 3822 13599 N 2
df2 :-
  s_no  SETf
1 B
2 D
3 C
4 A
5 E
我想对 df1 的行进行排序基于 SETf 的相同顺序的 df2 .
我试过的:- df1 =df1.set_index('SET') df1= df1.reindex(df2.index['SETf']) df1= df1.reset_index()它不起作用,因为我在 SET 中有重复项在 df1 .除此之外,我想根据 LEVEL 对行进行排序 ascending每个内 SETflag

最佳答案

如果您的 s_no 在您的第二个数据框中创建列是唯一且升序的 [1,2,3,4,etc.],然后合并两个数据框并按 s_no 排序您合并的列,然后将其删除:

df1 = pd.merge(df1, df2[['SETf', 's_no']].rename({'SETf':'SET'}, axis=1), how='left',on='SET')
df1 = df1.sort_values(['s_no', 'flag', 'LEVEL']).drop('s_no', axis=1)
df1
Out[490]:
SET Date cust_ID TYPE amt total flag LEVEL
5 B 6/22/2019 202669668 S 3713 25166 N 1
4 B 6/22/2019 202706466 S 1904 25343 N 2
2 B 6/22/2019 204671333 S 2364 24311 Y 1
3 B 6/22/2019 202770598 S 4721 10582 Y 1
6 B 6/22/2019 202754932 T 4792 16888 Y 2
10 D 6/8/2019 111197161 P 4490 25489 N 2
7 D 6/7/2019 120304631 P 4968 25297 Y 2
8 D 6/7/2019 112353651 P 1622 14384 Y 3
9 D 6/7/2019 112349221 P 4721 15878 Y 3
13 C 6/8/2019 136390501 Q 1649 13626 N 2
14 C 6/9/2019 136326431 Q 3822 13599 N 2
1 C 6/18/2019 112010871 R 4582 12455 Y 2
12 A 6/8/2019 137281821 Q 1060 24085 Y 2
0 A 6/10/2019 113252981 R 1317 16237 Y 3
11 E 6/8/2019 137049981 Q 4409 10842 Y 2

关于python-3.x - 根据 Python 中另一个数据帧的列对一个数据帧的行(具有重复项的列)进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64274292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com