熊猫DataFrame清洁

时间:2019-06-22 22:35:42

标签: pandas

我有一个生日如1990年10月10日的数据框。 由于任何方法均不适用于此列,因此我想将其转换为datetime。它适用于第一日期列,但不适用于同一第二列。

我认为问题出在此列中的垃圾日期是问题,但我不知道如何清除它。

所以,我正在使用

data[4] = pd.to_datetime(data[4], infer_datetime_format=True)
data[4].hist()

而且一切都还好。但是,当我在第二列上做与第一列相同的操作时,出现错误:

  

ValueError:给定的日期字符串不太可能是日期时间。

我正在尝试使用以下方法查看本专栏:

isna().sum()
Firs one: 6
Second one: 13

str.isnumeric().value_counts()
give a True: 2.

我想知道在使用它之前如何清除列。

2 个答案:

答案 0 :(得分:0)

您可以通过errors

data[4] = pd.to_datetime(data[4], errors='coerce',format='%m.%d%.%Y')

答案 1 :(得分:0)

默认错误kwarg是'raise'而不是'ignore'。

尝试使用date[4] = pd.to_datetime(date[4], infer_datetime_format=True, errors="ignore")

date[4] = pd.to_datetime(date[4], format='%d/%m/%Y', errors="ignore")在上述情况下不起作用。

您可以在此处详细了解pandas.to_datetime() from的不同论点。