我有一个数据框(hasleft),其中包含已离开服务的人及其离开的原因。 'text'列是他们的原因,但其中一些不是字符串。并不多,所以我只想删除这些行,无论是就位还是新数据帧。下面的代码只给我一个仅填充了NaN的数据框。为什么不起作用?
cleanedleft = pd.DataFrame()
cleanedleft = haveleft[haveleft[haveleft['text'] == str]]
print(holder[0:10])
或者如果我删除其中一个'haveleft []',我会得到一个空的数据帧
cleanedleft = pd.DataFrame()
cleanedleft = haveleft[haveleft['text'] == str]
print(holder[0:10])
我试图添加一个类型(),但似乎无法弄清楚如何做到这一点。
答案 0 :(得分:0)
它不起作用,因为DataFrame列不能包含混合类型;您的text
列将是字符串或对象,即使某些值是数字。您需要弄清楚如何表征不需要的数据并相应地删除它们。
例如,要删除'text'仅由数字组成的行,如您在单行示例中所示:
cleaned = df[~df['text'].str.match('^\d+$')]