pd.DataFrame({ 'ID': { 0: 11404371006, 1: 11404371007, 2: 11404371008, 3: 11404371009, 4: 11404371010, 5: 11404371011 }, 'TABLE.F1': { 0: 'Y', 1: 'NULL', 2: 'N', 3: 'N', 4: 'N', 5: 'N' }, 'O': { 0: False, 1: False, 2: False, 3: False, 4: False, 5: False } })`enter code here`
I have the above data frame and would like to save the output in a file as a pipe delimited data like below.
So far I have tried pd.to_csv and pd.to_string(), both outputs the data in tabular format however, the data is not aligning to the max length of the column header or the data.
to_string()
to_csv()
Advertisement
Answer
Use to_markdown
:
out = df.to_markdown(index=False, tablefmt='pipe', colalign=['center']*len(df.columns)) print(out) # Output: | ID | TABLE.F1 | O | |:-----------:|:----------:|:-----:| | 11404371006 | Y | False | | 11404371007 | NULL | False | | 11404371008 | N | False | | 11404371009 | N | False | | 11404371010 | N | False | | 11404371011 | N | False |
To remove the second line:
out = out.split('n') out.pop(1) out = 'n'.join(out) print(out) # Output | ID | TABLE.F1 | O | | 11404371006 | Y | False | | 11404371007 | NULL | False | | 11404371008 | N | False | | 11404371009 | N | False | | 11404371010 | N | False | | 11404371011 | N | False |