Ari M.
Ari M.

Reputation: 11

Python Parse a Text file and convert it to a dataframe

I need help parsing a specific string from this text file and then converting it to a dataframe.

I am trying to parse this portion of the text file:

Graph Stats for Max-Clique:

|V|: 566834
|E|: 659570
d_max: 8
d_avg: 2
p: 4.10563e-06
|T|: 31315
T_avg: 0
T_max: 5
cc_avg: 0.0179651
cc_global: 0.0281446

After parsing the text file, I need to make it into a dataframe where the columns are |V|,|E|, |T|, T_avg, T_max, cc_avg, and cc_global. Please advice! Thanks :)

Upvotes: 0

Views: 1344

Answers (1)

jpp
jpp

Reputation: 164843

You can read directly to a Pandas dataframe via pd.read_csv. Just remember to use an appropriate sep parameter. You can set your index column as the first and transpose:

import pandas as pd
from io import StringIO

x = StringIO("""|V|: 566834
|E|: 659570
d_max: 8
d_avg: 2
p: 4.10563e-06
|T|: 31315
T_avg: 0
T_max: 5
cc_avg: 0.0179651
cc_global: 0.0281446""")

# replace x with 'file.txt'
df = pd.read_csv(x, sep=': ', header=None, index_col=[0]).T

Result

print(df)

0       |V|       |E|  d_max  d_avg         p      |T|  T_avg  T_max  \
1  566834.0  659570.0    8.0    2.0  0.000004  31315.0    0.0    5.0   

0    cc_avg  cc_global  
1  0.017965   0.028145  

Upvotes: 2

Related Questions