如何使用 pandas.read_csv( ) 读取行名称的原始名称?

How can I read in row names as they were originally, using pandas.read_csv( )?

我需要读入一个包含距离矩阵的 .csv 文件,因此它具有相同的行名和列名,同时拥有它们很重要。但是,下面的代码只能给我一个dataframe,其中行名包含在一个额外的"Unnamed: 0"列中,索引又变成了整数,这对以后的索引非常不方便。

DATA = pd.read_csv("https://raw.githubusercontent.com/PawinData/UC/master/DistanceMatrix_shortestnetworks.csv")

我确实检查了 pandas.read_csvdocumentation 并使用了 index_colheadernames、e.t.c 但是 none 似乎有效。有人可以帮我吗?

对要索引的第一列使用 index_col=0 参数:

url = "https://raw.githubusercontent.com/PawinData/UC/master/DistanceMatrix_shortestnetworks.csv"
DATA = pd.read_csv(url, index_col=0)

print (DATA.head())
             Imperial  Kern  Los Angeles  Orange  Riverside  San Bernardino  \
Imperial            0     3            3       2          1               2   
Kern                3     0            1       2          2               1   
Los Angeles         3     1            0       1          2               1   
Orange              2     2            1       0          1               1   
Riverside           1     2            2       1          0               1   

             San Diego  San Luis Obispo  Santa Barbara  Ventura  
Imperial             1                4              4        4  
Kern                 3                1              1        1  
Los Angeles          2                2              2        1  
Orange               1                3              3        2  
Riverside            1                3              3        3  

出现此问题的可能性很大,因为您的 CSV 是与其 RangeIndex 一起保存的,后者通常没有名称。保存 DataFrame data.to_csv('file.csv', index = False)

时实际上需要完成修复

读取未命名列作为索引。为 pd.read_csv 指定一个 index_col=0 参数,这会读取第一列作为索引。

data = pd.read_csv("https://raw.githubusercontent.com/PawinData/UC/master/DistanceMatrix_shortestnetworks.csv",index_col = 0)

并删除未命名的列使用 data.drop(data.filter(regex="Unname"),axis=1, inplace=True)