在Python 3中清理Dataframe

时间:2018-05-03 17:05:41

标签: python pandas

我有一个数据框(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])

我试图添加一个类型(),但似乎无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:0)

它不起作用,因为DataFrame列不能包含混合类型;您的text列将是字符串或对象,即使某些值是数字。您需要弄清楚如何表征不需要的数据并相应地删除它们。

例如,要删除'text'仅由数字组成的行,如您在单行示例中所示:

cleaned = df[~df['text'].str.match('^\d+$')]