从上面,你可以看到我已经将索引设置为“index”。 我的期望是能够使用“索引”列来删除行,并且仅使用“Barangay”列作为功能而不是数据框的索引。
如上所示,仍然使用“Barangay”列作为引用索引来删除行。我尝试使用索引 [0, 1] 删除但返回错误。
最佳答案
您需要分配回来:
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
关于python - df.set_index() 没有按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58152315/