【发布时间】:2017-06-16 19:32:18
【问题描述】:
我有一个包含 16 列和大约 10 亿行的大型数据集。
在这个数据集中我面临两个主要问题
- 我有错误行,因为某些行的列数是
more or less多于 16 列
我正在使用error_rows=False这是跳过行,但我正在执行大约 30 次操作,每次都花费太多时间。
- 其中一列是
DateTime,采用人类可读的格式。在执行将人类可读转换为Unix格式的操作之一时。dtype不可读主要是因为error_rows
这给了我关于 dtype 或插入 low_memory=False 的错误和警告
如果我插入dtype,则下一个错误和警告将转移到另一列。
代码:
for i in input_files:
Tmp_Table = pd.DataFrame()
address = direc + i
df = pd.read_csv(address,sep=',',error_bad_lines=False)
3 列中的 16 列是 datetime 并且似乎列混合了 dtype 可能是由于错误行。为了避免我使用了low_memory=False,这也给了我以下错误
Traceback (most recent call last):
File "FirstTable.py", line 20, in <module>
Tmp_Table['Datetime'] = df['Tweeted Datetime'].apply(lambda x: UnixFormat(str(x)))
File "/usr/local/lib/python2.7/dist-packages/pandas/core/series.py", line 2355, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas/_libs/src/inference.pyx", line 1569, in pandas._libs.lib.map_infer (pandas/_libs/lib.c:66440)
File "FirstTable.py", line 20, in <lambda>
Tmp_Table['Datetime'] = df['Tweeted Datetime'].apply(lambda x: UnixFormat(str(x)))
File "/home/lakshmi/Desktop/Twitter_Code_Ubuntu/Functions.py", line 41, in UnixFormat
unixtime = previous
UnboundLocalError: local variable 'previous' referenced before assignment
因此,我试图找到一种简单快捷的方法来从数据集中一次性删除这些错误行,这样我的下一个操作就不会占用太多时间。
任何人都可以建议我这样做的最佳方法..提前致谢。
【问题讨论】:
标签: python pandas datetime memory dataframe