Asbjoern Lund
Asbjoern Lund

Reputation: 43

Reading funny delimited txt file

I have a txt file that looks like this. When reading it, it reads it as one column. I have tried to use a lot of different sep=

$Eid, X, Y, Z, Mass
  856395   3.4694275e-01  -9.7051837e-02   6.4922004e+00   7.3136240e-03
  856396   3.4694746e-01  -9.7053476e-02   6.5071974e+00   7.3139570e-03
  856397   3.4695095e-01  -9.7054794e-02   6.5221949e+00   7.3139421e-03
  856398   3.4695303e-01  -9.7055703e-02   6.5371923e+00   7.3139500e-03
df_data = pd.read_csv("ElCEntroid kopi-kopi.txt", skiprows=2, sep="t")

Upvotes: 0

Views: 45

Answers (2)

mozway
mozway

Reputation: 261015

I imagine t it not your separator but rather tabulations (\t):

you can try:

df_data = pd.read_csv('ElCEntroid kopi-kopi.txt',
                      skiprows=1, header=None,
                      sep='\s+'                    # or sep='\t'
                     )

output:

        0         1         2         3               4
0  856395  0.346943 -0.097052  6.492200   7.3136240e-03
1  856396  0.346947 -0.097053  6.507197   7.3139570e-03
2  856397  0.346951 -0.097055  6.522195   7.3139421e-03
3  856398  0.346953 -0.097056  6.537192   7.3139500e-03

Btw, if you're interested in the header, you could also use:

df_data = pd.read_csv('ElCEntroid kopi-kopi.txt', sep=",?\s+", engine='python')

output:

     $Eid         X         Y         Z            Mass
0  856395  0.346943 -0.097052  6.492200   7.3136240e-03
1  856396  0.346947 -0.097053  6.507197   7.3139570e-03
2  856397  0.346951 -0.097055  6.522195   7.3139421e-03
3  856398  0.346953 -0.097056  6.537192   7.3139500e-03

Upvotes: 2

dgrealy
dgrealy

Reputation: 21

Is the file a fixed width file? If so you can use pd.read_fwf() instead. This is really helpful if you know in advance the width of each column. Im assuming here that Eid, X, Y, Z, Mass have width 8, 16, 16, 16, and 16 respectively, but you can change it if its different.

df = pd.read_fwf("ElCEntroid kopi-kopi.txt", skiprows=2, widths=[8, 16, 16, 16, 16])

Upvotes: 0

Related Questions