df.set_index () не работает, как я ожидал - PullRequest
1 голос
/ 29 сентября 2019

Setting the Index

Из приведенного выше вы можете видеть, что я установил индекс на «индекс».Я ожидаю, что смогу использовать столбец «индекс» для отбрасывания строк и просто использовать столбец «Барангай» как функцию, а не как индекс моего фрейма данных.

Using Index to Drop records

Как видно выше, строки отбрасываются с использованием столбца «Barangay» в качестве ссылочного индекса.Я попытался удалить, используя index [0, 1], но возвращает ошибку.

1 Ответ

2 голосов
/ 29 сентября 2019

Вам необходимо присвоить обратно:

city_prop = city_prop.set_index('index')

Или:

city_prop.set_index('index', inplace = True)

РЕДАКТИРОВАТЬ:

df = pd.read_csv('CityProperEskwenilaExtraIndicators.csv', 
                 skiprows=1,
                 header=None, 
                 sep=';',
                 index_col=[0,1]).T

print (df.head())
0 Barangay    Longitude     Latitude        Poverty rate Terrain type  \
1        #    See annex    See annex Per 100 inhabitants    See annex   
2        1  27,67231183   66,3112793                  18    Difficult   
3        2  65,15620167  53,32027629                  54    Difficult   
4        3  34,94438385   89,7970517                  63    Difficult   
5        4  10,97542641  84,26323733                  42       Normal   
6        5  26,05436012  61,30689679                  70    Difficult   

0 Roads needing repair  Access to WASH Access to clean water  \
1   kilometers of road % of population       % of population   
2          55,40469584            50,2                  71,2   
3          14,08228761            51,8                  88,9   
4          33,20044684              77                  97,4   
5          1,695918463            74,7                  52,1   
6          85,08259271            70,1                  99,3   

0 Violent incidents     Homicides  
1     rate per 100K rate per 100K  
2              7,72   6,833797715  
3               8,3   5,513650409  
4              3,72   2,931838433  
5              6,26   5,883509349  
6              6,55   5,348430398  

#replace ,
df = df.replace(',','.', regex=True)
#remove second level
df.columns = df.columns.droplevel(1)
#convert columns to numeric
excluded = ['Terrain type','Poverty rate']
cols = df.columns.difference(excluded)
#to floats
df[cols] = df[cols].astype(float)
#to integer
df['Poverty rate'] = df['Poverty rate'].astype(int)
print (df.head())
0  Barangay  Longitude   Latitude  Poverty rate Terrain type  \
2       1.0  27.672312  66.311279            18    Difficult   
3       2.0  65.156202  53.320276            54    Difficult   
4       3.0  34.944384  89.797052            63    Difficult   
5       4.0  10.975426  84.263237            42       Normal   
6       5.0  26.054360  61.306897            70    Difficult   

0  Roads needing repair  Access to WASH  Access to clean water  \
2             55.404696            50.2                   71.2   
3             14.082288            51.8                   88.9   
4             33.200447            77.0                   97.4   
5              1.695918            74.7                   52.1   
6             85.082593            70.1                   99.3   

0  Violent incidents  Homicides  
2               7.72   6.833798  
3               8.30   5.513650  
4               3.72   2.931838  
5               6.26   5.883509  
6               6.55   5.348430

print (df.dtypes)
0
Barangay                 float64
Longitude                float64
Latitude                 float64
Poverty rate               int32
Terrain type              object
Roads needing repair     float64
Access to WASH           float64
Access to clean water    float64
Violent incidents        float64
Homicides                float64
dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...