【发布时间】:2020-05-29 21:10:43
【问题描述】:
我目前正在编写代码来分析大量数据子集。我使用 pandas 读取文本文件,并使用 data.head() 打印它。我需要为 9 列(第 9 列为空)指定 dtype,因为否则该过程会占用大量内存,但我不知道如何为缺少列标题的列指定 dtype。是否与为列标题指定 dtype 相同?作为参考,我的列数据类型可能如下:
第 1 列:混合,因为它包含字母数字字符
第 2 列:格式为 YY/MM/DD 的日期
第 3 列:以小时/分钟/秒/毫秒为单位的时间
第 4 列:Str
第 5 栏:时间
第 6 列:Str
第 7 栏:时间
第 8 栏:时间
第 9 列:空
Here is an excerpt of the text file
这也是我的代码的摘录
import sys
import os
import glob
import pandas as pd
import numpy as np
path = '/Users/MysteriousHo-Oh1231/Downloads/Datapoints1/*.txt'
dataframes = []
for filename in glob.iglob(path):
data = pd.read_csv(filename, header=None, delimiter='\t', dtype={0: object, 1: int, 2: int, 3: object, 4: int, 5: object, 6: int, 7: int, 8: None})
print(data.head())
我尝试了上面的代码,它返回了这个error:
请帮帮我!
【问题讨论】:
-
python 从 0 开始,而不是 1
-
首先删除
try/except以查看错误消息,因为您有错误。 IE。它必须是dtype=没有s,没有变量datetime64但np.datetime64但通常您必须在加载数据后使用data[2] = pd.to_datetime(data[2])。 -
顺便说一句:你必须使用
print( data.head() ) -
@furas 是的,我忘记写了,哈哈!我会去做的。谢谢你抓住它!也感谢其他一切!
-
顺便说一句:您可以将数据添加为文本,然后我们可以使用它来测试想法/代码。