排序整理成新的数据帧,请大师帮忙,谢谢
df1 = pd.DataFrame({'A': ['a', 'dd','w','ad', 'vdd','wb','az', 'dk','pw',],
'wB':
})
ps = ['ad','dk','wb']
print(df1)
df1数据帧的A列,按ps列表排序整理,成新的数据帧,请大师帮忙,谢谢
A wB
3 ad786
7 dk 66
5 wb 36
0 a 22
1 dd 26
2 w242
4vdd 29
6 az 12
8 pw 2 可以使用pandas中的sort_values()方法对数据帧进行排序。sort_values()方法可以按照指定列的值进行排序,也可以指定升序或降序排列。对于本题,可以使用以下代码实现:
import pandas as pd
df1 = pd.DataFrame({
'A': ['a', 'dd','w','ad', 'vdd','wb','az', 'dk','pw',],
'wB':
})
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 wB
3ad786
7dk 66
5wb 36
0 a 22
1dd 26
2 w242
4vdd 29
6az 12
8pw 2
解释:首先,使用apply()方法将A列中的元素转换成它在ps列表中的索引值(如果不在ps列表中,则返回ps列表长度),然后按照这个索引值对数据帧进行排序,得到新的数据帧df_new。 加油中
页:
[1]