Python 熊猫阅读一个文件并列出一个清单

Python 熊猫阅读一个文件并列出一个清单,python,import,pandas,Python,Import,Pandas,我必须读取此txt文件才能为表创建索引(我只写第一行): ocmov01f ('TIREOO',无,1,1,0,假) (“PROFOO”,无,10,10,0,假) ('DT01OO',无,8,8,0,假) ('DTMNOO',无,8,8,0,假) ('CDDTOO',无,2,2,0,False) ('TDOCOO',无,1,1,0,假) ('nRoro',无,7,7,0,假) ('NRRGOO',无,3,3,0,假) ('NSRGOO',无,3,3,0,假) ('CDAROO',无,13,13,

我必须读取此txt文件才能为表创建索引(我只写第一行):

ocmov01f
('TIREOO',无,1,1,0,假)
(“PROFOO”,无,10,10,0,假)
('DT01OO',无,8,8,0,假)
('DTMNOO',无,8,8,0,假)
('CDDTOO',无,2,2,0,False)
('TDOCOO',无,1,1,0,假)
('nRoro',无,7,7,0,假)
('NRRGOO',无,3,3,0,假)
('NSRGOO',无,3,3,0,假)
('CDAROO',无,13,13,0,假)
('CTGMOO',无,30,30,0,False)
列的名称是类似“TIREOO”的字符串,然后有一些关于列内容应该是什么类型的信息。 我已经成功导入了包含列名引用的数据的表,但是我需要一种快速导入列名的方法(它们是132),可以读取文件并列出名称吗?或者我必须手动创建一个不同类型的文件,或者直接编写一个名称列表?

当您说

我已经成功导入了包含数据的表

您是否有可用的
数据帧

如果是这样,就用

下面的代码为您提供了所需的索引,但我不得不做一些工作,从您的文件中删除额外的
'
()
部分

import pandas as pd
from cStringIO import StringIO

data = """\
('TIREOO', <type 'str'>, None, 1, 1, 0, False)
('PROFOO', <type 'str'>, None, 10, 10, 0, False)
('DT01OO', <class 'decimal.Decimal'>, None, 8, 8, 0, False)
('DTMNOO', <class 'decimal.Decimal'>, None, 8, 8, 0, False)
('CDDTOO', <type 'str'>, None, 2, 2, 0, False)
('TDOCOO', <type 'str'>, None, 1, 1, 0, False)
('NROROO', <class 'decimal.Decimal'>, None, 7, 7, 0, False)
('NRRGOO', <class 'decimal.Decimal'>, None, 3, 3, 0, False)
('NSRGOO', <class 'decimal.Decimal'>, None, 3, 3, 0, False)
('CDAROO', <type 'str'>, None, 13, 13, 0, False)
('CTGMOO', <type 'str'>, None, 30, 30, 0, False)
"""

data = data.replace('(','')
data = data.replace(')','')

# i've named your columns so they are easier to access
# un-named, they default to integer indexing like the rows
# you probably have more meaningful names for them
df = pd.read_csv(StringIO(data), header=None,
                 names=['a', 'b', 'c', 'd', 'e', 'f', 'g'])


# this is just removing the 'funny' characters from the data
df.g = [item.strip(')') for item in df.g.values]
df.a = [item.strip('(\'') for item in df.a.values]

df.set_index('a')
df
将熊猫作为pd导入
从cStringIO导入StringIO
data=”“”\
('TIREOO',无,1,1,0,假)
(“PROFOO”,无,10,10,0,假)
('DT01OO',无,8,8,0,假)
('DTMNOO',无,8,8,0,假)
('CDDTOO',无,2,2,0,False)
('TDOCOO',无,1,1,0,假)
('nRoro',无,7,7,0,假)
('NRRGOO',无,3,3,0,假)
('NSRGOO',无,3,3,0,假)
('CDAROO',无,13,13,0,假)
('CTGMOO',无,30,30,0,False)
"""
数据=数据。替换(“”(“”,“”)
数据=数据。替换('),“”)
#我已为您的列命名,以便它们更易于访问
#未命名时,它们默认为与行一样的整数索引
#你可能会给他们起更多有意义的名字
df=pd.read_csv(StringIO(数据),标题=None,
名称=['a','b','c','d','e','f','g'])
#这只是从数据中删除“有趣”的字符
df.g=[df.g.values中项目的item.strip(')')]
df.a=[item.strip('(\'')表示df.a.values中的项]
df.set_索引('a')
df

我应该补充一点,我使用了cStringIO导入StringIO的
数据=“”…
,和
StringIO(数据)
部分,这样我就可以将数据以可运行的形式直接包含在这个答案中。您只需要
pd.read\u csv(我的数据文件名,
在您自己的代码中

是的,我已经有了一个工作数据框,我会在几天内尝试您的建议,谢谢。我已经有了一个工作数据框,我需要这些字符串作为列的名称。
import pandas as pd
from cStringIO import StringIO

data = """\
('TIREOO', <type 'str'>, None, 1, 1, 0, False)
('PROFOO', <type 'str'>, None, 10, 10, 0, False)
('DT01OO', <class 'decimal.Decimal'>, None, 8, 8, 0, False)
('DTMNOO', <class 'decimal.Decimal'>, None, 8, 8, 0, False)
('CDDTOO', <type 'str'>, None, 2, 2, 0, False)
('TDOCOO', <type 'str'>, None, 1, 1, 0, False)
('NROROO', <class 'decimal.Decimal'>, None, 7, 7, 0, False)
('NRRGOO', <class 'decimal.Decimal'>, None, 3, 3, 0, False)
('NSRGOO', <class 'decimal.Decimal'>, None, 3, 3, 0, False)
('CDAROO', <type 'str'>, None, 13, 13, 0, False)
('CTGMOO', <type 'str'>, None, 30, 30, 0, False)
"""

data = data.replace('(','')
data = data.replace(')','')

# i've named your columns so they are easier to access
# un-named, they default to integer indexing like the rows
# you probably have more meaningful names for them
df = pd.read_csv(StringIO(data), header=None,
                 names=['a', 'b', 'c', 'd', 'e', 'f', 'g'])


# this is just removing the 'funny' characters from the data
df.g = [item.strip(')') for item in df.g.values]
df.a = [item.strip('(\'') for item in df.a.values]

df.set_index('a')
df