Python数据类型错误排查:读取出租车轨迹数据后的类型获取问题
解决读取空格分隔文本文件时的数据类型错误问题
看起来你的问题核心是文本文件的分隔符和pandas.read_csv的默认设置不匹配,导致数据没有被正确拆分成对应列,后续获取各属性数据类型时自然会出错。咱们一步步来解决:
第一步:先确认问题根源
先运行下面的代码,看看当前数据的解析状态:
print(res.columns) res.info()
你大概率会看到整个DataFrame只有1列,列名是第一行的taxi id date time longitude latitude——这就是因为read_csv默认用逗号作为分隔符,但你的文件是空格分隔的,所有数据都挤在了同一列里。
第二步:正确读取文件
修改read_csv的参数,指定用空格作为分隔符(支持单个或多个连续空格):
# 方法1:用正则匹配任意数量的空格 res = pd.read_csv("C:/Users/malik/Desktop/result.txt", sep='\s+', low_memory=False) # 方法2:直接启用空白分隔模式(效果和上面一致,写法更简洁) res = pd.read_csv("C:/Users/malik/Desktop/result.txt", delim_whitespace=True, low_memory=False)
第三步:验证解析结果
读取完成后,先确认列是否正确拆分:
res.head()
然后查看各属性的数据类型:
res.dtypes
第四步:优化时间字段解析(可选)
如果date和time列没有自动被识别为datetime类型,可以手动指定解析规则:
# 合并date和time为一个统一的datetime列 res = pd.read_csv("C:/Users/malik/Desktop/result.txt", delim_whitespace=True, low_memory=False, parse_dates=[['date', 'time']]) # 或者分别将date和time解析为datetime类型 res = pd.read_csv("C:/Users/malik/Desktop/result.txt", delim_whitespace=True, low_memory=False, parse_dates=['date', 'time'])
这样操作后,你就能正常获取每个属性的数据类型了。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

