删除列中的混合字符

时间:2019-03-31 10:14:40

标签: python-3.x pandas

我要删除以下各列中的字符吗?我有10列这样的内容

B15.5

e10.5

19.5K

NAN

Q2.4

NAN

T82.7

14.5

14.6P

我尝试使用“ df ['column'] = df ['column']。str [:-2]”,但不起作用

“ df ['column'] = df ['column']。str [:-2]

1 个答案:

答案 0 :(得分:0)

这里是经过编辑的代码-

def removeFirstLastChar(inp):
    inputStr = str(inp)
    if inputStr.lower() == 'NAN'.lower():
        return inp
    if(inputStr[0].isalpha() == True):
        inputStr = inputStr[1:]
    if(inputStr[-1].isalpha() == True):
        inputStr = inputStr[:-1]
    return float(inputStr)

print(removeFirstLastChar('Q2.4'))
print(removeFirstLastChar('14.6P'))
print(removeFirstLastChar('Q14.6P'))
print(removeFirstLastChar(float('NAN')))

输出-


2.4
14.6
14.6
nan

请注意,如果它是字母-https://docs.python.org/3/library/stdtypes.html#str.isalpha,则只会从字符串中删除一个开始或结束字符。 此外,这将返回浮点数,而不是字符串。如果需要字符串,请将功能中的return float(inputStr)更改为return inputStr