设置 pandas DataFrame 的索引名称

Posted

技术标签:

【中文标题】设置 pandas DataFrame 的索引名称【英文标题】:Set index name of pandas DataFrame 【发布时间】:2016-10-24 10:28:51 【问题描述】:

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

    ''     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
...

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于设置 pandas DataFrame 的索引名称的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 使用索引名称作为列名创建 Dataframe

pandas使用方括号[]或者loc函数基于列名称或者列名称列表索引dataframe中的单个数据列或者多个数据列(accessing columns of a dataframe)

Pandas - 过滤和正则表达式搜索 DataFrame 的索引

pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)

pandas使用iloc函数基于行列索引获取dataframe指定行和指定列交叉格子的数据内容loc函数基于行索引和列名称获取dataframe指定行和指定列交叉格子的数据内容

pandas如何设置索引从0开始,pandas如何恢复默认索引,DataFrame如何恢复隐式索引