Как я могу прочитать имена строк, как они были изначально, используя pandas .read_csv ()? - PullRequest
1 голос
/ 12 апреля 2020

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

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

Я проверил документацию из pandas.read_csv и поиграл с index_col, header, names, et c, но ни одна из них не работала. Кто-нибудь может мне здесь помочь?

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Эта проблема, скорее всего, возникает из-за того, что ваш 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 голос
/ 12 апреля 2020

Используйте параметр 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  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...