如何将标题行添加到 Pandas DataFrame?

关注者
2
被浏览
19,313
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

1.通过直接在 dataframe 方法中传递标题行来添加标题行

我们将使用 columns 参数将 header 直接传递给 dataframe

考虑以下代码:

# python 3.x
import pandas as pd
import numpy as np
df = pd.DataFrame(
    data=np.random.randint(
        0, 10, (6,4)),
    columns =["a", "b", "c", "d"])
print(df)

输出:

a  b  c  d
0  4  4  4  0
1  8  1  2  5
2  3  0  4  3
3  3  7  2  4
4  8  3  1  8
5  6  7  5  9

2. 使用 dataframe.columns 添加标题行

我们还可以使用 dataframe.columns 将标题行添加到 dataframe 中。

考虑以下代码:

# python 3.x
import pandas as pd
import numpy as np
df = pd.DataFrame(
    data=np.random.randint(
        0, 10, (6,4)))
df.columns=["a", "b", "c", "d"]
print(df)

输出:

a  b  c  d
0  5  2  6  7
1  4  5  9  0
2  8  3  0  4
3  6  3  1  1
4  9  3  4  8
5  7  5  0  6

3.添加标头而不替换当前标头

另一种选择是将标题行添加为列索引的附加级别,以使其成为 MultiIndex 。当我们需要为列增加一层信息时,此方法很有用。

考虑以下代码:

# python 3.x
import pandas as pd
import numpy as np
df = pd.DataFrame(
    data=np.random.randint(
        0, 10, (6,4)),
    columns=["a", "b", "c", "d"])
df.columns = pd.MultiIndex.from_tuples(
    zip(['A', 'B','C', 'D'], 
        df.columns))
print(df)

输出:

A  B  C  D
   a  b  c  d
0  2  6  4  6
1  5  0  5  1
2  9  6  6  1
3  8  9  7  4
4  6  5  6  6
5  3  9  1  5

4.读取 csv 文件时,将 header 行添加到 dataframe 中

我们可以直接在 read_csv 中使用 names ,或者如果文件没有标题,可以显式设置 header = None

考虑以下代码:

# python 3.x