gpt4 book ai didi

python - Pandas 使用 sort_values 对 2 个数据帧进行排序,然后按日期进行子排序

转载 作者:太空宇宙 更新时间:2023-11-04 05:27:18 24 4
gpt4 key购买 nike

我有两个包含相似类型信息的数据框。我正在尝试将它们合并并重新组织。这是数据帧的示例:

df1 = 
Member Nbr Name-First Name-Last Date-Join
20 Zoe Soumas 2011-08-01
3128 Julien Bougie 2011-07-22
3535 Michel Bibeau 2015-02-18
4116 Christopher Duthie 2014-12-02
4700 Manoj Chauhan 2014-11-11
4802 Anna Balian 2014-07-26
5004 Abdullah Cekic 2012-03-12
5130 Raymonde Girard 2011-01-04



df2 =
Member Nbr Name-First Name-Last Date-Join
3762 Robert Ortopan 2010-01-31
3762 Robert Ortopan 2010-02-28
3892 Christian Burnet 2010-03-24
3892 Christian Burnet 2010-04-24
5022 Robert Ngabirano 2010-06-25
5022 Robert Ngabirano 2010-07-28

我想要的是一个按 Member Nbr 排序的数据框,如果该成员出现不止一次,那么它将按加入日期再次组织。所以我会:

df12 =  
Member Nbr Name-First Name-Last Date-Join
20 Zoe Soumas 2011-08-01
3128 Julien Bougie 2011-07-22
3535 Michel Bibeau 2015-02-18
3762 Robert Ortopan 2010-01-31
3762 Robert Ortopan 2010-02-28
3892 Christian Burnet 2010-03-24
3892 Christian Burnet 2010-04-24
4116 Christopher Duthie 2014-12-02
4700 Manoj Chauhan 2014-11-11
4802 Anna Balian 2014-07-26
5004 Abdullah Cekic 2012-03-12
5022 Robert Ngabirano 2010-06-25
5022 Robert Ngabirano 2010-07-28
5130 Raymonde Girard 2011-01-04

我已经设法使用 df12 = pd.concat([df1, df2], ignore_index=True) 将两个数据帧连接起来,将 df2 放在底部df1。使用后

df12.sort_values(by='Member Nbr', axis=0, inplace=True)

成员按升序排列,但多次出现(在不同加入日期)的成员按降序排列。那就是

Member Nbr    Name-First      Name-Last      Date-Join 
20 Zoe Soumas 2011-08-01
3128 Julien Bougie 2011-07-22
3535 Michel Bibeau 2015-02-18
3762 Robert Ortopan 2010-02-28 # Wrongly sorted
3762 Robert Ortopan 2010-01-31
3892 Christian Burnet 2010-04-24 # Wrongly sorted
3892 Christian Burnet 2010-03-24
4116 Christopher Duthie 2014-12-02
4700 Manoj Chauhan 2014-11-11
4802 Anna Balian 2014-07-26
5004 Abdullah Cekic 2012-03-12
5022 Robert Ngabirano 2010-07-28 # Wrongly sorted
5022 Robert Ngabirano 2010-06-25
5130 Raymonde Girard 2011-01-04

有没有办法让加入日期不止一个的成员也按日期升序排列?

最佳答案

by 参数可以是列列表,以便数据框首先按第一列排序(对于第二列排序,对于第三列排序等)

df12.sort_values(by=['Member Nbr', 'Date-Join'], inplace=True)

产生

    Member Nbr   Name-First  Name-Last  Date-Join
0 20 Zoe Soumas 2011-08-01
1 3128 Julien Bougie 2011-07-22
2 3535 Michel Bibeau 2015-02-18
4 3762 Robert Ortopan 2010-01-31
3 3762 Robert Ortopan 2010-02-28
6 3892 Christian Burnet 2010-03-24
5 3892 Christian Burnet 2010-04-24
7 4116 Christopher Duthie 2014-12-02
8 4700 Manoj Chauhan 2014-11-11
9 4802 Anna Balian 2014-07-26
10 5004 Abdullah Cekic 2012-03-12
12 5022 Robert Ngabirano 2010-06-25
11 5022 Robert Ngabirano 2010-07-28
13 5130 Raymonde Girard 2011-01-04

请注意,要使其正常工作,Date-Join 列的类型应为 datetime。

关于python - Pandas 使用 sort_values 对 2 个数据帧进行排序,然后按日期进行子排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38299831/

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