设置 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使用方括号[]或者loc函数基于列名称或者列名称列表索引dataframe中的单个数据列或者多个数据列(accessing columns of a dataframe)
Pandas - 过滤和正则表达式搜索 DataFrame 的索引
pandas使用rename函数自定义重命名dataframe指定索引标签(位置)的名称(customize rename index value or label)
pandas使用iloc函数基于行列索引获取dataframe指定行和指定列交叉格子的数据内容loc函数基于行索引和列名称获取dataframe指定行和指定列交叉格子的数据内容