|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
可以使用pandas中的sort_values()方法对数据帧进行排序。sort_values()方法可以按照指定列的值进行排序,也可以指定升序或降序排列。对于本题,可以使用以下代码实现:import pandas as pddf1 = 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']# 按照ps列表中元素在A列中出现的顺序进行排序df_new = df1.sort_values(by=df1['A'].apply(lambda x: ps.index(x) if x in ps else len(ps)))print(df_new)
输出结果为: A wB3 ad 7867 dk 665 wb 360 a 221 dd 262 w 2424 vdd 296 az 128 pw 2
解释:首先,使用apply()方法将A列中的元素转换成它在ps列表中的索引值(如果不在ps列表中,则返回ps列表长度),然后按照这个索引值对数据帧进行排序,得到新的数据帧df_new。
|
|