清理csv的有效方法?

时间:2014-10-24 20:28:29

标签: pandas

我正在解析和修改包含每次互动记录的大型文件(每月一次演出)。这些文件是由我们的客户发送给我的,所以我坚持他们所包含的内容。我正在使用熊猫来清理它们,添加一些信息等等。

我一直遇到的问题是,在100万+行中,datetime列中的1到10个值不是日期。由于逗号分隔的一些问题(这是来自客户端的查询,而不是我的),因此另一列的值在日期列中,因此它可能会说“已关闭”或其他内容。

如何删除这些行?当我使用df.sort('Datetime')时,我可以看到有错误的那些。我只想要一种快速放弃这些的方法。

以下是我的想法:

  1. 有一个名为'TransID'的列总是以 字母'H'(它总是9位数)除非另一列值移入此列时出错

  2. 日期列应始终具有值(notnull)

  3. 有人可以帮助想出解决这个问题的方法吗? (我认为这个日期的事情是关键问题因为我有从EndDate中减去StartDate的公式..如果其中一个包含一个单词然后它会弄乱整个过程。也许我可以创建一些错误异常或删除错误行?)< / p>

1 个答案:

答案 0 :(得分:0)

使用H列使用布尔索引和vectorized string methods.

过滤掉错误行
good_rows_mask = df.TransID.str[0] == 'H'
df = df[good_rows_mask]