Pandas:如果名称包含特定字符串,则删除列
您可以使用以下方法从 pandas DataFrame 中删除名称包含特定字符串的列:
方法 1:如果名称包含特定字符串,则删除列
df. drop (list(df. filter (regex=' this_string ')), axis= 1 , inplace= True )
方法 2:如果名称包含多个特定字符串之一,则删除列
df. drop (list(df. filter (regex=' string1|string2|string3 ')), axis= 1 , inplace= True )
以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team_name ': ['A', 'B', 'C', 'D', 'E', 'F'], ' team_location ': ['AU', 'AU', 'EU', 'EU', 'AU', 'EU'], ' player_name ': ['Andy', 'Bob', 'Chad', 'Dan', 'Ed', 'Fran'], ' points ': [22, 29, 35, 30, 18, 12]}) #view DataFrame print (df) team_name team_location player_name points 0 A AU Andy 22 1 B AU Bob 29 2 C EU Chad 35 3 D EU Dan 30 4 E TO Ed 18 5 F EU Fran 12
示例 1:如果名称包含特定字符串,则删除列
我们可以使用以下语法从 DataFrame 中删除列名称中任意位置包含“team”的任何列:
#drop columns whose name contains 'team' df. drop (list(df. filter (regex=' team ')), axis= 1 , inplace= True ) #view updated DataFrame print (df) player_name points 0 Andy 22 1 Bob 29 2 Chad 35 3 Dan 30 4 Ed 18 5 Fran 12
请注意,名称中包含“team”的两列已从 DataFrame 中删除。
示例 2:如果名称包含多个特定字符串之一,则删除列
我们可以使用以下语法从 DataFrame 中删除列名称中任意位置包含“player”或“points”的任何列:
#drop columns whose name contains 'player' or 'points' df. drop (list(df. filter (regex=' player|points ')), axis= 1 , inplace= True ) #view updated DataFrame print (df) team_name team_location 0 A AU 1 B AU 2 C EU 3D EU 4 E AU 5 F EU
请注意,名称中包含“player”或“points”的两列已从 DataFrame 中删除。
注: | pandas 中的符号用作“OR”运算符。
其他资源
以下教程解释了如何在 pandas 中执行其他常见任务: