例如,我有一个包含许多列的 Dataframe ,列数不清楚,例如,在10到20之间。
中的列名如下:RecordID, price, company, date, feature1, return, some_inf, feature2, feature3, ...
样本数据:
column_names = ["RecordID", "price", "company", "date", "feature1", "return", "some_inf", "feature2", "feature3"]
values = [1, 9.99, "ABC", 20230101, 888, 0.666, "happy_everyday", "helloworld", "test"]
df = pd.DataFrame(values).T
df.columns = column_names
在所有这些列中,我想挑出一些列(如果存在的话)放在最前面,其余的列顺序不变,例如,我想选择date, volume, price, return
则输出(包含重新排序的列)将为date, price, return, RecordID, company, feature1, some_inf, feature2, feature3, ...
volume
列不存在于原始 Dataframe 中,因此它也不应出现在最终输出中。即,输出 Dataframe 应具有选择列表中的前几列(如果它们也在原始 Dataframe 中),然后是不在此列表中的列,顺序不变。
有什么快速实现的方法吗?
1条答案
按热度按时间w46czmvw1#
对所有列使用
Index.intersection
,以Index.append
开始,按Index.difference
中的列: