使用set_index函数按照规定的方法在熊猫中设置索引时,输出中的索引不会更改,并且loc函数也不会选择标签。我正在使用Spyder运行该程序。
$VERSION
以上返回以下输出。
import pandas as pd
df = pd.DataFrame({'age':[30, 2, 12, 4, 32, 33, 69],
'color':['blue', 'green', 'red', 'white', 'gray', 'black',
'red'],
'food':['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese',
'Melon', 'Beans'],
'height':[165, 70, 120, 80, 180, 172, 150],
'score':[4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2],
'state':['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX'],
'Name':['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean',
'Christina', 'Cornelia']})
df.set_index('color')
print(df.head(5))
答案 0 :(得分:0)
正如@ALollz在他们的回复中所说,您的问题是.set_index
方法的使用。具体来说,是使用您的方法返回具有已调整索引的数据框,而您期望它可以直接在使用该方法的数据库上工作。为此,您需要使用inplace=True
参数。
import pandas as pd
df = pd.DataFrame({'age':[30, 2, 12, 4, 32, 33, 69],
'color':['blue', 'green', 'red', 'white', 'gray', 'black', 'red'],
'food':['Steak', 'Lamb', 'Mango', 'Apple', 'Cheese', 'Melon', 'Beans'],
'height':[165, 70, 120, 80, 180, 172, 150],
'score':[4.6, 8.3, 9.0, 3.3, 1.8, 9.5, 2.2],
'state':['NY', 'TX', 'FL', 'AL', 'AK', 'TX', 'TX'],
'Name':['Jane', 'Nick', 'Aaron', 'Penelope', 'Dean', 'Christina', 'Cornelia']})
df = df.set_index('color')
# or df.set_index('color', inplace=True)
print(df.head(5))