pandas 中的 set_index 方法用于将 DataFrame 中的一列或多列设置为索引。这在数据分析和处理中非常有用,特别是当你想要根据某列的值来重新组织或查询数据时。

以下是 set_index 方法的基本用法和一些示例:

DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
  • keys:列标签或列标签列表。
  • drop:默认为 True,表示将用作新索引的列从原始 DataFrame 中删除。如果设置为 False,则保留该列。
  • append:默认为 False,表示将键追加到现有索引。如果为 True,则将键与现有索引连接在一起。
  • inplace:默认为 False,表示返回一个新的 DataFrame。如果为 True,则直接在原始 DataFrame 上进行修改。
  • verify_integrity:检查新索引是否有重复项。默认为 False。

    示例

  • 单列作为索引
  • 假设我们有一个包含 'Name' 和 'Age' 的 DataFrame,我们想要将 'Name' 列设置为索引:

    import pandas as pd  
      
    data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}  
    df = pd.DataFrame(data)  
      
    # 使用 'Name' 列作为索引  
    df_indexed = df.set_index('Name')  

  • 多列作为多级索引
  • 你也可以使用多列来创建多级索引:

    data = {'Country': ['USA', 'USA', 'China', 'China'], 'City': ['New York', 'Los Angeles', 'Beijing', 'Shanghai'], 'Population': [8000000, 4000000, 20000000, 25000000]}  
    df = pd.DataFrame(data)  
      
    # 使用 'Country' 和 'City' 列作为多级索引  
    df_multiindex = df.set_index(['Country', 'City'])  
    print(df_multiindex)

  • 保留原始索引列
  • 如果你想要保留原始索引列而不是删除它,可以将 drop 参数设置为 False:

    df_indexed_with_name = df.set_index('Name', drop=False)  
    print(df_indexed_with_name)

更多推荐