如何在Python中删除带有字符的行

如何在Python中删除带有字符的行,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,其中有一堆浮点数和数值,但有一些行中间混合了字符,我正试图删除它们。我用data=data.astype(str)将整个数据帧转换为字符串,并尝试使用X=X[X.var1.isalpha()],但它给了我一个错误“Series”对象没有属性“isalpha”。谢谢。基于您需要在您想要检查的序列上调用.str,即 X.var1.str.isalpha() 根据您需要对要检查的序列调用.str,即 X.var1.str.isalpha() 您可以使用pd.Series.str.r

我有一个数据框,其中有一堆浮点数和数值,但有一些行中间混合了字符,我正试图删除它们。我用
data=data.astype(str)
将整个数据帧转换为字符串,并尝试使用
X=X[X.var1.isalpha()]
,但它给了我一个错误
“Series”对象没有属性“isalpha”
。谢谢。

基于您需要在您想要检查的序列上调用.str,即

X.var1.str.isalpha()
根据您需要对要检查的序列调用.str,即

X.var1.str.isalpha()

您可以使用
pd.Series.str.replace
,它接受
regex
,即:

new = df.astype(str).apply(lambda x: x.str.replace('[a-zA-Z]+', '')).astype(float)                                                                                                                                                                       

您可以使用
pd.Series.str.replace
,它接受
regex
,即:

new = df.astype(str).apply(lambda x: x.str.replace('[a-zA-Z]+', '')).astype(float)                                                                                                                                                                       

IIUC这就是你想要的:

df = pd.DataFrame({'a':['1','x',2,7], 'b':[2,3,'y',8]})

#   a  b
#0  1  2
#1  x  3
#2  2  y
#3  7  8

df.apply(pd.to_numeric, errors = "coerce").dropna()
#     a    b
#0  1.0  2.0
#3  7.0  8.0

IIUC这就是你想要的:

df = pd.DataFrame({'a':['1','x',2,7], 'b':[2,3,'y',8]})

#   a  b
#0  1  2
#1  x  3
#2  2  y
#3  7  8

df.apply(pd.to_numeric, errors = "coerce").dropna()
#     a    b
#0  1.0  2.0
#3  7.0  8.0

请共享源数据和预期输出。这将有助于解决问题。请共享源数据和预期输出。它将有助于解决这个问题,我很确定这是行不通的(astype部分)。此外,OP要求删除行,而不是字符
astype
有什么问题?但行上的观点很好。您将有一些空字符串(
'
),在强制转换为float时会出现错误。它将类似于
float(“”)
我很确定这不起作用(
astype
部分)。此外,OP要求删除行,而不是字符
astype
有什么问题?但行上的观点很好。您将有一些空字符串(
'
),在强制转换为float时会出现错误。类似于
float(“”)
是的,类似的东西很好,我应该输入和输出,但我对stackoverflow非常陌生,不知道如何编写它。是的,类似的东西很好,我应该输入和输出,但我对stackoverflow非常陌生,不知道如何编写它。