熊猫读取“分隔”文件

时间:2017-05-22 01:06:08

标签: python pandas delimiter

enter image description here

嗨,我有这样的.txt文件,第一列代表索引,后面是一对“()”中的三列代表x,y和z坐标。

我想将此文件的前四列加载到pandas Dataframe。但是,我发现这很难,因为分隔符首先是“”然后“(”并且在括号内有“,”。

有人能给我一些关于如何处理这种情况的暗示吗?

谢谢! 肖恩

2 个答案:

答案 0 :(得分:0)

可以编写自己的解析器。类似的东西:

<强>代码:

def parse_my_file(filename):
    with open(filename) as f:
        for line in f:
            yield [x.strip(',()')
                   for x in re.split(r'\s+', line.strip())[:4]]

测试代码:

df = pd.DataFrame(parse_my_file('file1'))
print(df)

<强>结果:

    0       1       2  3
0  g1     -16       0  0
1  gr      10       0  0
2  D1  -6.858  2.7432  0
3  D2  -2.286  2.7432  0

这个数据文件是在我输入前四行时创建的。

答案 1 :(得分:0)

您可以使用regex pattern作为CSV的分隔符。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

像这样。

import pandas as pd

df = pd.read_csv('Initial_Coordinate.txt', sep=r'[()]', header=None)
print(df)

但是,不是创建复杂的分隔符,最好将其修改为简单的分隔符,然后用pandas读取它。

THX

相关问题