【发布时间】:2015-10-20 13:22:25
【问题描述】:
我有一个文件(tests.txt),其中包含以下格式的数据:
NUMBER,\tFilename,\t\t\t\t\tTestName,\t\t\t\tConfig
001,\t\tFile1.csv,\t\tcube,\t\twidth height size
002,\t\tFile2.csv,\t\tsquare,\t\tlength param
通常看起来像:
HLM_TIER, Filename, TestName, Config
001, File1.csv, cube, width height size
002, File2.csv, square, length param
我想从这个文件中提取一个特定的列(TestName)。
代码尝试:
import pandas as pd
data = pd.read_csv('tests.txt', skipinitialspace=True)
TestName = data.TestName
TestName = TestName.strip(' \t')
但是,我收到以下错误:
Traceback (most recent call last):
File "C:\Users\temp.py", line 23, in <module>
TestName = data.TestName
File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 2246, in __getattr__
(type(self).__name__, name))
AttributeError: 'DataFrame' object has no attribute 'TestName'
我认为错误是由于列中的选项卡导致 pandas 将该列读取为“\t\t\t\t\tTestName \” 但是,我不确定如何解决这个问题。 注意:我无法更改“tests.txt”文件。
【问题讨论】:
-
如果您还包括参数 - skipinitialspace=True 到 read_csv 会发生什么?
-
不是数据帧通过键访问,
data['TestName']... -
@AnandSKumar:它不起作用。试过这个“data = pd.read_csv('performance_tests.txt', skipinitialspace=True”。但是,没有变化。
-
同样的错误还是错误改变了? print(data.columns) 的结果是什么
-
当你使用时你不需要 strip .
标签: python csv pandas text-formatting