Мне нужно читать в файле .csv, который содержит матрицу расстояний, поэтому он имеет идентичные имена строк и столбцов, и важно иметь их обоих. Однако приведенный ниже код может дать мне только тот кадр данных, в котором имена строк включены в дополнительный столбец «Безымянный: 0», а индекс снова становится целым числом, что очень неудобно для последующей индексации.

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

Я проверил документацию из {{ X0}} и играл с index_col, header, names и т. Д., Но ни один из них, похоже, не работал. Кто-нибудь может помочь мне здесь?

1
Paw in Data 12 Апр 2020 в 15:11

2 ответа

Лучший ответ

Используйте параметр 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  
1
jezrael 12 Апр 2020 в 12:13

Скорее всего, эта проблема возникает из-за того, что ваш CSV был сохранен вместе с RangeIndex , который обычно не имеет имени. Исправление действительно необходимо выполнить при сохранении DataFrame data.to_csv('file.csv', index = False)

Читать безымянный столбец в качестве индекса. Укажите аргумент index_col = 0 для pd.read_csv, который читается в первом столбце как индекс.

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)

1
Darsh Shukla 12 Апр 2020 в 12:38