【问题标题】:Set index name of pandas DataFrame设置 pandas DataFrame 的索引名称
【发布时间】:2025-11-27 03:00:01
【问题描述】:

我有一个这样的熊猫数据框:

    ''     count
sugar      420
milk       108
vanilla    450
...

第一列没有标题,我想给它起个名字:“成分”。

我从 csv 文件创建了数据框:

df = pd.read_csv('./data/file_name.csv', index_col=False, encoding="ISO-8859-1")  
df = df['ingredient_group']  #selecting column 
df = df.value_counts()       #calculating string occurance which return series obj
df = pd.DataFrame(df)        #creating dataframe from series obj

如何将名称“成分”分配给当前没有名称的第一列?

我已经试过了:

df_count.rename(columns={'': 'ingredient'}, inplace=True)

df = pd.DataFrame(df, columns = ['ingredient','count']

如何防止这种情况发生?

''        count
ingredient  ''
sugar      420
milk       108
vanilla    450
...

【问题讨论】:

    标签: python csv pandas dataframe


    【解决方案1】:

    您正在寻找如何为索引设置 AXIS 的名称“成分”。

    df.rename_axis('ingredient', inplace=True)
    

    【讨论】:

      【解决方案2】:

      试试这个:

      cols_ = df.columns
      cols[0] = 'ingredient'
      df.columns = cols_
      

      【讨论】:

      • 德米特里感谢您的回答!您知道如何从数据框中删除计数小于 5 的行吗?
      • df[df.count > 5]
      【解决方案3】:

      如果成分是索引的名称,那么你可以设置它

      df.index.name='ingredient'
      

      在当前的解决方案中,您将“成分”作为索引的名称,它打印在与列名称不同的行中。这不能按原样更改。试试下面的修改解决方案,这里索引被复制到一个新列,列名和索引替换为数字序列。

      df['ingredient']=df.index
      df = df.reset_index(drop=True)
      

      【讨论】: