Python 查找字符串中包含数字的列

Python 查找字符串中包含数字的列,python,pandas,Python,Pandas,我有一个DataFrame,它有带数字的列,但这些数字表示为字符串。我想自动找到这些列,而不告诉哪列应该是数字。我怎样才能在熊猫身上做到这一点呢?你可以利用熊猫的包含 >>> df.columns[df.columns.str.contains('.*[0-9].*', regex=True)] 可以修改正则表达式以适应您要搜索的各种模式您可以使用pandas的contains >>> df.columns[df.columns.str.contains('

我有一个DataFrame,它有带数字的列,但这些数字表示为字符串。我想自动找到这些列,而不告诉哪列应该是数字。我怎样才能在熊猫身上做到这一点呢?

你可以利用熊猫的
包含

>>> df.columns[df.columns.str.contains('.*[0-9].*', regex=True)]

可以修改正则表达式以适应您要搜索的各种模式

您可以使用pandas的
contains

>>> df.columns[df.columns.str.contains('.*[0-9].*', regex=True)]

可以修改正则表达式以适应您要搜索的各种模式

您可以先使用
pd进行筛选。然后使用
将数值
与原始列组合:

df['COL_NAME'] = pd.to_numeric(df['COL_NAME'],errors='coerce').combine_first(df['COL_NAME'])

您可以先使用
pd.to\u numeric
进行筛选,然后
将\u first
与原始列组合:

df['COL_NAME'] = pd.to_numeric(df['COL_NAME'],errors='coerce').combine_first(df['COL_NAME'])

如果您只有字符串或数字,则可以执行
df.apply(lambda col:col.astype(“int64”,errors=“ignore”))
。如果您只有字符串或数字,则可以执行
df.apply(lambda col:col.astype(“int64”,errors=“ignore”)