如何在熊猫中使用set_index函数解决问题

时间:2019-10-28 13:39:48

标签: pandas

使用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))

1 个答案:

答案 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))