前提
pandasでread.excelメソッドを使って読み込んだデータに、
予め取得した
list = [["aaa", 1, 111], ["bbb", 2, 222]]
の様なlistの一つ目のlistのデータを、要素ごとにカラムを付けた一つの列として加えたいのですが、上手くいかず難航しています。
お忙しいところ恐縮ですが、ご回答いただけますと幸いです。
実現したいこと
list内の1つ目のlistだけ以下のように、カラム名を要素ごとにつけてデータフレームに新しく列として加えたいです。
イメージとしては、
list = [["aaa", 1, 111], ["bbb", 2, 222]]
上記の様なlistの一つ目のlist、つまり、["aaa", 1, 111]の部分を、
以下の一つ目の表に新しく列として加えて、二つ目の表のようにしたいといった感じです。
name | |
---|---|
0 | sam |
1 | sally |
2 | bob |
name | l1 | l2 | l3 | |
---|---|---|---|---|
0 | sam | aaa | 1 | 111 |
1 | sally | aaa | 1 | 111 |
2 | bob | aaa | 1 | 111 |
発生している問題・エラーメッセージ
上記のように新しくデータを加えようとして以下の様なエラーが出されました。
d = separate_list[j] TypeError: list indices must be integers or slices, not str
該当のソースコード
(補足)
※データフレームに同じ値を新しく列として入れるやり方の参考にしたサイトはこちらです。
※file_path :参照したいファイルのパスがlist形式で入ったものです。
※separate_list :リスト内に、["学籍番号", "大学名", "年月"]に対応するデータをリストで保持しています。
イメージとしては、以下の様な感じです。
list = [[1234, "A大学", 202203], [1653, "B大学", 202103]]
python
1#空のデータフレーム作成 2df = pd.DataFrame() 3for i in file_path: 4 df_read_excel = pd.read_excel(j, sheet_name=month_sheet, skiprows=17, skipfooter=1) 5 #concatの前にsplit_name_listのデータをデータフレームの左側にカラムでくっつけようとしましたが、上手くいきませんでした。 6 d = separate_list[i] 7 df_read_excel = df_read_excel["学籍番号", "大学名", "年月"] = d 8 #pd.concatはデータフレームのデータを縦に繋げる 9 df = pd.concat([df_read_excel, df], axis=0)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/03/24 08:03 編集
2022/03/24 08:12