前提・実現したいこと
csvファイルを選択後、指定した列だけを抽出し、カラム名のみをリストボックスに表示をさせています。
その後、リストボックスに表示させたカラム名をクリックすることで、テキストボックスにカラム名に対応している列の値を表示させたく考えています。
発生している問題・エラーメッセージ
エラーメッセージはないのですが、テキストボックスにカラム名が表示されてしまい、列の値が表示されません
該当のソースコード
Python
1import tkinter as tk 2from tkinter import filedialog 3import pandas as pd 4import os 5 6root=tk.Tk() 7root.title("チョイス") 8root.geometry("600x600") 9 10frame=tk.Frame() 11frame.grid(row=0,sticky="we") 12 13frame_button=tk.Frame() 14frame_button.grid(row=1,sticky="we") 15 16txt=tk.Entry(width=60) 17txt.place(x=150,y=150) 18txtData={} 19 20list_value=tk.StringVar() 21listbox=tk.Listbox(frame,height=30,listvariable=list_value,selectmode="single") 22 23def btn_click(): 24 type = [("all file","*")] 25 path = os.getcwd () 26 file_path = filedialog.askopenfilename(filetypes = type, initialdir = path) 27 28 df = pd.read_csv(file_path, engine="python",usecols=[1,7,19,20,31,32,44,45,46,47,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,142,143,144,148,149,150,154,155,156,160,161,162,166,167,168,172,173,174,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192]) 29 df_columns=df.columns.values 30 31 new_file_path = file_path + "_a" +".csv" 32 df.to_csv(new_file_path, index=False) 33 headerList=df_columns 34 35 list_value.set(df_columns) 36 for i in range(0,len(headerList)): 37 txtData[i]={} 38 txtData[i]['name']=headerList[i] 39 txtData[i]['list']=[] 40 41 txt.insert(tk.END,headerList[i]) 42 43 for rowList in df: 44 for j in range(0,len(rowList)): 45 txtData[j]['list'].append(rowList[j]) 46 47Button=tk.Button(frame_button,text="選択",command=btn_click) 48Button.grid(row=1,column=0) 49 50listbox.pack() 51root.mainloop() 52
補足情報(FW/ツールのバージョンなど)
M1mac
anacondaを使用しています。
ご教授いただけましたら幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/30 08:59