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 中执行其他常见任务:

如何删除 Pandas 中的第一列
如何删除 Pandas 中的重复列
如何删除 Pandas 中除某些列之外的所有列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注