Python 删除/删除名称以X开头的列*
我有以下数据和框架:Python 删除/删除名称以X开头的列*,python,pandas,Python,Pandas,我有以下数据和框架: raw = { 'A': [1, 10],'B': [100,1000],'logA': [0, 1], 'logB':[2,3]} df= pd.DataFrame(raw, columns=['A','B','logA','logB']) 如何删除所有以“log”开头的列?我已经尝试了df.drop(['logA','logB'],axis=1),但我想知道是否可以使用df.columns.str.startswith('log')是 选项1 使用loc和布尔索引 d
raw = { 'A': [1, 10],'B': [100,1000],'logA': [0, 1], 'logB':[2,3]}
df= pd.DataFrame(raw, columns=['A','B','logA','logB'])
如何删除所有以“log”开头的列?我已经尝试了df.drop(['logA','logB'],axis=1)
,但我想知道是否可以使用df.columns.str.startswith('log')
是
选项1使用
loc
和布尔索引
df.loc[:, ~df.columns.str.startswith('log')]
A B
0 1 100
1 10 1000
选项2
使用带有负前瞻正则表达式的
pd.DataFrame.filter
df.filter(regex='^(?!log)')
A B
0 1 100
1 10 1000
对
选项1使用
loc
和布尔索引
df.loc[:, ~df.columns.str.startswith('log')]
A B
0 1 100
1 10 1000
选项2
使用带有负前瞻正则表达式的
pd.DataFrame.filter
df.filter(regex='^(?!log)')
A B
0 1 100
1 10 1000