どうにもイメージが曖昧だけど、こんな感じかな。
Python
1import pandas as pd
2import io
3
4txt = """
5names,id
6かぼちゃ,10604
7キャベツ,10606
8グリーンボール,10606
9枝豆,10601
10"""
11
12# 画面出力時の日本語の桁揃え
13pd.set_option('display.unicode.east_asian_width', True)
14
15# namesとidのデータフレーム生成
16df = pd.read_csv(io.StringIO(txt))
17print(df, end="\n\n")
18
19# 新たに追加する列名
20new_columns = ['カロリー', 'タンパク質', '脂質', '塩分', '太りやすいか']
21
22# 最初のデータフレームを基にして、追加する列名も含めたデータフレームを生成
23df = pd.DataFrame(df, columns=df.columns.values.tolist() + new_columns)
24print(df, end="\n\n")
25
26# 拡張データを用意
27dat = [100, 200, 300, 400, True]
28
29# idを指定して拡張データをデータフレームに設定
30df.loc[df['id'] == 10604, 'カロリー': '太りやすいか'] = dat
31print(df)
results
1 names id
20 かぼちゃ 10604
31 キャベツ 10606
42 グリーンボール 10606
53 枝豆 10601
6
7 names id カロリー タンパク質 脂質 塩分 太りやすいか
80 かぼちゃ 10604 NaN NaN NaN NaN NaN
91 キャベツ 10606 NaN NaN NaN NaN NaN
102 グリーンボール 10606 NaN NaN NaN NaN NaN
113 枝豆 10601 NaN NaN NaN NaN NaN
12
13 names id カロリー タンパク質 脂質 塩分 太りやすいか
140 かぼちゃ 10604 100.0 200.0 300.0 400.0 True
151 キャベツ 10606 NaN NaN NaN NaN NaN
162 グリーンボール 10606 NaN NaN NaN NaN NaN
173 枝豆 10601 NaN NaN NaN NaN NaN