根据列表排序数据帧,匹配pandas中的一列

时间:2015-06-17 12:59:05

标签: python pandas

我有一个值列表。我有一个数据框,其中一列包含相同的值。如何订购数据框以同样的方式列出订单?

列表示例:

[3,
 4,
...
 21,
 23,
 25,
 26]

数据框示例:

     0   1    2
0   ND   3  0/1
1   ND   4  0/1
...
11  ND  21  0/1
12  ND  23  0/1
13  ND  25  0/1
14  ND  26  0/1

我需要确保根据列表对表进行排序。我需要匹配的列是数据框中的第1列。

编辑:用排序替换排序,因为排序词可能具有误导性

2 个答案:

答案 0 :(得分:4)

您可以根据列表创建数据框,并与数据框合并

a = [3,4,1]
df_a = pd.DataFrame({'VAL2' : a})
df_b = pd.DataFrame({'VAL1' :[0,1,2,3,4,5,6]})
pd.merge(df_a, df_b,left_on='VAL2',right_on='VAL1',how='outer')

答案 1 :(得分:0)

也许这个:

df['order'] = df[1].apply(lambda v: l.index(v))
df_you_wanted = df.sort('order')[[0,1,2]]

这里是你的清单,df是你的数据框。