嗨,我有这样的.txt文件,第一列代表索引,后面是一对“()”中的三列代表x,y和z坐标。
我想将此文件的前四列加载到pandas Dataframe。但是,我发现这很难,因为分隔符首先是“”然后“(”并且在括号内有“,”。
有人能给我一些关于如何处理这种情况的暗示吗?
谢谢! 肖恩
答案 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