Python读取文本文件报错,如何导入数据并设置指定列名?
问题分析与解决
1. 语法错误原因
你写的代码里,open语句的代码块中缺少循环关键字for,正确的循环写法应该是for line in mytxt:,这是导致语法报错的直接原因。
2. 更高效的数据导入方案(适配后续机器学习操作)
既然已经导入了pandas,直接用pandas的read_csv方法读取数据更高效,还能直接处理列名、分隔符和空行问题,具体步骤如下:
步骤1:整理列名
先把你提供的列名字符串转换成列表,去除多余空格:
column_names = [col.strip() for col in "PERSON_GENDER_CD| PERSON_AGE_NBR| HOUSEHOLD_INCOME_ID | DOG_WHISPERER| DOGS_101|BAD_DOG|PUPPIES_VS_BABIES|PUPPY_BOWL".split("|")]
步骤2:读取数据文件
使用pd.read_csv读取Databricks路径下的文本文件,指定分隔符为|,跳过空行,并设置列名:
import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.cluster import KMeans # 整理列名 column_names = [col.strip() for col in "PERSON_GENDER_CD| PERSON_AGE_NBR| HOUSEHOLD_INCOME_ID | DOG_WHISPERER| DOGS_101|BAD_DOG|PUPPIES_VS_BABIES|PUPPY_BOWL".split("|")] # 读取数据,处理竖线分隔和空行 df = pd.read_csv("dbfs/FileStore/shared_uploads/ebXXXXX.com/modified_uverse_data.txt", sep="|", skip_blank_lines=True, names=column_names, skipinitialspace=True) # 去除每个字段前后的空格(如果有的话) # 查看导入的数据 print(df.head())
3. 原代码的修复版本(如果只是想逐行读取)
如果你只是想测试逐行读取文件,修复语法错误后的代码如下:
import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.cluster import KMeans with open("dbfs/FileStore/shared_uploads/ebXXXXX.com/modified_uverse_data.txt") as mytxt: for line in mytxt: print(line.strip()) # strip()可以去掉每行末尾的换行符和空行
内容的提问来源于stack exchange,提问作者user22366511
相关产品推荐
相关产品推荐

