我有一个 Dataframe ,其中包含名为“ID”的列我还有另一个 Dataframe ,其中包含我想要使用的ID值列表。我可以选择一个子 Dataframe ,其中包含与列表中的ID对应的行
例如
IDlist_df=pd.DataFrame({"v":[3,4,6,9]})
df=pd.DataFrame({"ID":[1,1,2,3,3,4,4,4,5,6,6,7,8,9],"name":['menelaus','helen','ulyses','paris','hector', 'priamus','hecuba','andromache','achiles','ascanius','eneas','ajax','nestor','helenus']})
selected_lines=df[df['ID'].isin(IDlist_df['v'])]
print(selected_lines)
有了这个我就能
ID name
3 3 paris
4 3 hector
5 4 priamus
6 4 hecuba
7 4 andromache
9 6 ascanius
10 6 eneas
13 9 helenus
我得到了一个子 Dataframe ,其中包含ID为3、4、6、9的行
到目前为止一切顺利。
但是如果我想维持秩序
IDlist_df=pd.DataFrame({"v":[3,9,6,4]})
我得到了和上面一样的结果。
我怎样才能得到
ID name
3 3 paris
4 3 hector
13 9 helenus
9 6 ascanius
10 6 eneas
5 4 priamus
6 4 hecuba
7 4 andromache
(You可以看到顺序3、9、6、4保持不变)
2条答案
按热度按时间zpf6vheq1#
如果
IDlist_df.v
列中的值是唯一的,则可以将rename
与DataFrame.merge
一起使用:ssm49v7z2#
找到保存索引的方法
结果:
其他方式
按类别排序值