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 |


