删除不包含numb的列名

2024-03-28 14:28:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有以下列名的df:

Name, Id, xyz,..., ijk, 1, 2, 3, val1, val2,...

我想删除所有名称不包含数字且只保留NameId的列。有没有有效的方法?你知道吗

结果将是:Name,Id,1,2,3,val1,val2,。。。你知道吗

谢谢!你知道吗


Tags: 方法name名称iddf数字xyzval1
2条回答

IIUC公司:

df = df.loc[:, df.columns.astype(str).str.contains('\d') | df.columns.isin(['Name','Id'])]

演示:

In [224]: df
Out[224]:
   Name  Id  xyz  ijk  1  2  3  val1  val2
0     1   2    3    4  5  6  7     8     9

In [225]: df = df.loc[:, df.columns.astype(str).str.contains('\d') | df.columns.isin(['Name','Id'])]

In [226]: df
Out[226]:
   Name  Id  1  2  3  val1  val2
0     1   2  5  6  7     8     9

基于MaxU的答案。你知道吗

new_columns = df.columns[df.columns.astype(str).str.match("(.*\d.*)|Id|Name")]
df[new_columns]

相关问题 更多 >