web-dev-qa-db-ja.com

pandas DataFrameのインデックス名を設定

pandasこのようなデータフレームがあります:

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

最初の列にはヘッダーがありません。「ingredient」という名前を付けたいと思います。

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
...
10
Afke

成分がインデックスの名前である場合、次のように設定できます

df.index.name='ingredient'

現在のソリューションでは、インデックスの名前として「成分」があり、列名とは別の行に印刷されます。これをそのまま変更することはできません。以下の修正されたソリューションを試してください。ここでは、インデックスが列名を持つ新しい列にコピーされ、インデックスが数字のシーケンスに置き換えられます。

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

これを試して:

cols_ = df.columns
cols[0] = 'ingredient'
df.columns = cols_
1
Dmitry Andreev