删除 pandas 数据框中的 header 索引

Remove header index in pandas Dataframe

我有以下数据框:


                            0                        1         2    ... 630 631 632
0                         index                MATRICULE    ID_UEV  ...            
1       9936-25-3989-4-000-0000  9936-25-3989-4-000-0000  01045406  ...            
2       9739-83-9737-8-001-0302  9739-83-9737-8-001-0302  01038232  ...            
3       9754-37-9664-9-000-0000  9754-37-9664-9-000-0000  02004842  ...            
4       8134-96-8810-1-000-0000  8134-96-8810-1-000-0000  04007065  ...  

如何删除第一个 row/index 以便我可以将索引 MATRICULE,ID_UEV 作为 header


0                         index                MATRICULE    ID_UEV  ...            
1       9936-25-3989-4-000-0000  9936-25-3989-4-000-0000  01045406  ...            
2       9739-83-9737-8-001-0302  9739-83-9737-8-001-0302  01038232  ...            
3       9754-37-9664-9-000-0000  9754-37-9664-9-000-0000  02004842  ...            
4       8134-96-8810-1-000-0000  8134-96-8810-1-000-0000  04007065  ...  

您可以使用

df.columns = df.loc[0]
df = df.drop(0)

这会将列设置为第一行中的项目,然后删除第一行。

如果您使用 pd.read_csvpd.read_excel API 读取此数据,那么它有一个 skiprows 参数,您可以使用它来跳过行号。

import pandas as pd

df = pd.read_csv(
    r"your_path",
    skiprows=lambda x: x in [0], # Skip the first line
)
print(df)

读取文件时可以任意使用:

从第一个索引开始header:

data = pd.read_csv("file.csv", header = 1)

删除第一行

data = pd.read_csv("file.csv", skiprows=1)

替代方法是:

df.rename(columns=df.iloc[0]).drop(df.index[0])

或者如果不想让您的索引丢失任何内容,请使用此选项:

df.rename(columns=df.iloc[0]).drop(df.index[0]).reset_index(drop=True)