如何在Pandas中移除指定重复列并保留目标列
移除Pandas DataFrame中指定重复列名的列,保留目标列
针对你拥有包含重复列名的DataFrame,要移除所有Numbers列、仅保留Alphabets列的需求,可以通过以下几种简单方法实现:
方法一:通过列名布尔筛选
利用列名的布尔判断直接筛选出所有名为Alphabets的列:
import pandas as pd # 构建示例DataFrame data = pd.DataFrame({'Alphabets': ['A', 'B', 'C'], 'Numbers': ['1', '2', '3'], 'Alphabets': ['D', 'E', 'F'], 'Numbers': ['10', '11', '12'], 'Alphabets': ['G', 'H', 'I'], 'Numbers': ['13', '14', '15']}) # 仅保留所有Alphabets列 filtered_data = data.loc[:, data.columns == 'Alphabets'] print(filtered_data)
输出结果:
Alphabets Alphabets Alphabets 0 A D G 1 B E H 2 C F I
方法二:使用filter方法精确匹配列名
如果需要更简洁的写法,可以用filter方法配合正则表达式精确匹配列名:
filtered_data = data.filter(regex='^Alphabets$')
正则表达式^Alphabets$表示完全匹配Alphabets列名,不会误匹配其他包含该字符串的列。
补充说明
当DataFrame存在重复列名时,data.columns会保留所有列的原始名称(包括重复项),因此上述方法可以准确筛选出所有目标列,同时自动排除所有Numbers列。
内容的提问来源于stack exchange,提问作者narams giri
相关产品推荐
相关产品推荐

