Python:在Pandas中的列标题后插入连字符

时间:2018-07-26 08:44:11

标签: python pandas dataframe

我已经在Python Pandas中创建了一个数据框,如下所示:

import pandas as pd
import os   
cols = ('Name','AGE','SAL')
df = pd.read_csv("C:\\Users\\agupt80\\Desktop\\POC\\Python\\test.csv",names = cols)
print(df)

当我打印数据框时,我得到以下输出:

    Name  AGE  SAL
0   Amit   32  100
1  gupta   33  200
2  hello   34  300
3   Amit   33  100

请帮助告知我,如何在列标题后插入连字符“-”,如下所示:

    Name  AGE  SAL
------------------------
0   Amit   32  100
1  gupta   33  200
2  hello   34  300
3   Amit   33  100

3 个答案:

答案 0 :(得分:0)

我不知道用于打印分隔符的任何熊猫自定义选项,但是您可以仅将df打印为字符串,然后自己插入行。像这样:

string_repr = df.to_string().splitlines()
string_repr.insert(1, "-" * len(string_repr[0]))
out = '\n'.join(string_repr)


>>> print(out)
    Name  AGE  SAL
------------------
0   Amit   32  100
1  gupta   33  200
2  hello   34  300
3   Amit   33  100

答案 1 :(得分:0)

您可以执行以下操作:

import pandas as pd

df = pd.DataFrame([
    ['Amit', 32, 100],
    ['gupta', 33, 200],
    ['hello', 34, 100],
    ['Amit', 33, 100]],
    columns=['Name', 'AGE', 'SAL'])
lines = df.to_string().splitlines()
num_hyphens = max(len(line) for line in lines)
lines.insert(1, '-' * num_hyphens)
result = '\n'.join(lines)
print(result)

输出:

    Name  AGE  SAL
------------------
0   Amit   32  100
1  gupta   33  200
2  hello   34  100
3   Amit   33  100

您可以更改num_hyphens的计算,具体取决于您希望输出的外观如何。例如,您可以这样做:

num_hyphens = 2 * len(lines[0]) - len(lines[0].strip())

获得:

    Name  AGE  SAL
----------------------
0   Amit   32  100
1  gupta   33  200
2  hello   34  100
3   Amit   33  100

注意:如果DataFrame具有命名索引,to_string将输出带有索引名称的附加标题行。在这种情况下,您可以选择删除该行(用连字符替换),在其后添加连字符(在位置2而不是1)。

答案 2 :(得分:0)

您需要

#shift the values one level 
df=df.shift(1)
#fill the first row with hyphen
df.iloc[0]='----'

output

Name  AGE   SAL
----  ----  ----
Amit3 2     100
gupta 33    200
hello 34    300