鱼C论坛

 找回密码
 立即注册
查看: 2429|回复: 2

[已解决]排序整理成新的数据帧,请大师帮忙,谢谢

[复制链接]
发表于 2023-5-16 16:25:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
df1 = pd.DataFrame({
    'A': ['a', 'dd','w','ad', 'vdd','wb','az', 'dk','pw',],
    'wB': [22,  26, 242,  786,29,  36,12,  66,2]
})

ps = ['ad','dk','wb']

print(df1)

df1数据帧的A列,按ps列表排序整理,成新的数据帧,请大师帮忙,谢谢
     A   wB
3   ad  786
7   dk   66
5   wb   36
0    a   22
1   dd   26
2    w  242
4  vdd   29
6   az   12
8   pw    2
最佳答案
2023-5-16 16:25:57
可以使用pandas中的sort_values()方法对数据帧进行排序。sort_values()方法可以按照指定列的值进行排序,也可以指定升序或降序排列。对于本题,可以使用以下代码实现:
  1. import pandas as pd
  2. df1 = pd.DataFrame({
  3.     'A': ['a', 'dd','w','ad', 'vdd','wb','az', 'dk','pw',],
  4.     'wB': [22,  26, 242,  786,29,  36,12,  66,2]
  5. })
  6. ps = ['ad','dk','wb']
  7. # 按照ps列表中元素在A列中出现的顺序进行排序
  8. df_new = df1.sort_values(by=df1['A'].apply(lambda x: ps.index(x) if x in ps else len(ps)))
  9. print(df_new)
复制代码

输出结果为:
  1.     A   wB
  2. 3  ad  786
  3. 7  dk   66
  4. 5  wb   36
  5. 0   a   22
  6. 1  dd   26
  7. 2   w  242
  8. 4  vdd   29
  9. 6  az   12
  10. 8  pw    2
复制代码

解释:首先,使用apply()方法将A列中的元素转换成它在ps列表中的索引值(如果不在ps列表中,则返回ps列表长度),然后按照这个索引值对数据帧进行排序,得到新的数据帧df_new。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-5-16 16:25:57 | 显示全部楼层    本楼为最佳答案   
可以使用pandas中的sort_values()方法对数据帧进行排序。sort_values()方法可以按照指定列的值进行排序,也可以指定升序或降序排列。对于本题,可以使用以下代码实现:
  1. import pandas as pd
  2. df1 = pd.DataFrame({
  3.     'A': ['a', 'dd','w','ad', 'vdd','wb','az', 'dk','pw',],
  4.     'wB': [22,  26, 242,  786,29,  36,12,  66,2]
  5. })
  6. ps = ['ad','dk','wb']
  7. # 按照ps列表中元素在A列中出现的顺序进行排序
  8. df_new = df1.sort_values(by=df1['A'].apply(lambda x: ps.index(x) if x in ps else len(ps)))
  9. print(df_new)
复制代码

输出结果为:
  1.     A   wB
  2. 3  ad  786
  3. 7  dk   66
  4. 5  wb   36
  5. 0   a   22
  6. 1  dd   26
  7. 2   w  242
  8. 4  vdd   29
  9. 6  az   12
  10. 8  pw    2
复制代码

解释:首先,使用apply()方法将A列中的元素转换成它在ps列表中的索引值(如果不在ps列表中,则返回ps列表长度),然后按照这个索引值对数据帧进行排序,得到新的数据帧df_new。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-16 17:02:24 | 显示全部楼层
加油中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-24 01:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表