Python 不明白为什么专栏会赢';将pd.to\U numeric应用于时,请不要更改为numeric类型

Python 不明白为什么专栏会赢';将pd.to\U numeric应用于时,请不要更改为numeric类型,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框,其中第一列包含作为字符串的名称,我需要保留这些名称,其余列包含数字和字符串的混合。我只对数字感兴趣,所以我想将这些列转换为数字,并强制将字符串值转换为NaN,我可以使用errors=“concure” 但由于某些原因,当我在这些列上使用pd.to_numeric并强制执行错误时,它们仍然作为类型对象返回 print(df.info()) df.iloc[:,1:]=df.iloc[:,1:].apply(lambda x: pd.to_numeric(x,errors='coer

我有一个数据框,其中第一列包含作为字符串的名称,我需要保留这些名称,其余列包含数字和字符串的混合。我只对数字感兴趣,所以我想将这些列转换为数字,并强制将字符串值转换为NaN,我可以使用errors=“concure”

但由于某些原因,当我在这些列上使用pd.to_numeric并强制执行错误时,它们仍然作为类型对象返回

print(df.info())
df.iloc[:,1:]=df.iloc[:,1:].apply(lambda x: pd.to_numeric(x,errors='coerce')) 
print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 867 entries, 0 to 866
Data columns (total 15 columns):
Sample Name    867 non-null object
PFBS           196 non-null object
PFHxS          829 non-null object
PFOS           827 non-null object
PFHpA          301 non-null object
PFOA           711 non-null object
PFNA           744 non-null object
PFDA           625 non-null object
PFUnDA         378 non-null object
PFDoDA         236 non-null object
PFOSA          118 non-null object
N-EtFOSAA      638 non-null object
N-MeFOSAA      541 non-null object
PFPeA          437 non-null object
PFHxA          217 non-null object
dtypes: object(15)
memory usage: 101.7+ KB
None
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 867 entries, 0 to 866
Data columns (total 15 columns):
Sample Name    867 non-null object
PFBS           196 non-null object
PFHxS          829 non-null object
PFOS           827 non-null object
PFHpA          301 non-null object
PFOA           711 non-null object
PFNA           744 non-null object
PFDA           625 non-null object
PFUnDA         378 non-null object
PFDoDA         236 non-null object
PFOSA          118 non-null object
N-EtFOSAA      638 non-null object
N-MeFOSAA      541 non-null object
PFPeA          437 non-null object
PFHxA          217 non-null object
dtypes: object(15)
memory usage: 101.7+ KB
None
为什么这是可行的,但在数据帧的切片上使用apply却不行?有更直接的方法吗?

我建议删除“示例名称”列以使用此选项:

df.drop("Sample Name", axis = 1)

另请检查文档

,通过这种方式,您可以将带有字符串的单元格设置为列中的NaN:

df.loc[df['column'].str.contains('')==True, 'column'] = np.nan
df.loc[df['column'].str.contains('')==True, 'column'] = np.nan