Извлечение данных из файла xls с пандами и отображение их в метке Tkinter - PullRequest
0 голосов
/ 03 ноября 2019

Я начал с progammation в Python, я не очень силен, но я делаю

Я попытался создать небольшую программу для чтения файла Excel и извлечения из этого файла 2 двоеточия, После извлечения этогоданные, которые я помещаю в фрейм данных, а затем в список для разделения. Этот список каждые 15 индексов затем выделяет новый список в переменных и затем отображает их в метках

def getExcel(cols = None):
  global df, data_frame, new_values, df_to_list, conct_values

import_file_path = filedialog.askopenfilename()
df = pd.read_excel(import_file_path)
data_frame = pd.DataFrame(df, columns = ['Last_Name', 'First_Name'])

# drop all empty columns
data_frame = data_frame.dropna(how = 'all')
data_frame = data_frame.reset_index(drop = True)
print(data_frame)

# concatenate values into the DataFrame
new_values = data_frame['Last_Name'].map(str) + '/' + data_frame['First_Name'].map(str)
print(new_values)

# put the values of the dataframe in a list
df_to_list = new_values.values.tolist()
print(df_to_list)

# concatenate values from the list and separate them with "/"
conct_values = '/'.join(df_to_list)
print(conct_values)

# I found this code on the internet, I know there is better but that 's all I found#
initializing split index list
split_list = [15, 30, 45]

# printing original list
print("The original list is : " + str(df_to_list))

# printing original split index list
print("The original split index list : " + str(split_list))

# using list comprehension + zip()# to perform custom list split
split_list = [df_to_list[i: j]
  for i, j in zip([0] +
    split_list, split_list + [None])
]

# printing split_listult
print("The splitted lists are : " + str(split_list) + "\n")
splited_list = "/".join(split_list[0])
print("new list : " + splited_list)

var1, var2, var3 = itemgetter(0, 1, 2)(split_list)

# printing result
print("The variables are : " + str(var1) + "\n" +
  " " + str(var2) + "\n" +
  " " + str(var3) + "\n")

Файл EXCEL:

Last_Name   First_Name
Oscar   Baker
John    McKenzie
Gabriel Gray
MacKensie   Vernon
Steel   Kathleen
Allistair   Kirk
Nissim  Faith
Quamar  Anthony
Summer  Kibo
Octavia Clark
Amity   Jesse
Carlos  Kylie
Adria   Akeem
Blythe  Jana
Ethan   Brynne
Yolanda Abel
Robert  Yoko
Unity   Nolan
Lane    Logan
Joy Macey
Warren  Finn
Mechelle    Joshua
George  Acton

Вот список:

  The original list is : [
    ['Oscar/Baker', 'John/McKenzie', 'Gabriel/Gray', 'MacKensie/Vernon', 'Steel/Kathleen', 'Allistair/Kirk', 'Nissim/Faith', 'Quamar/Anthony', 'Summer/Kibo', 'Octavia/Clark', 'Amity/Jesse', 'Carlos/Kylie', 'Adria/Akeem', 'Blythe/Jana', 'Ethan/Brynne'], 
    ['Yolanda/Abel', 'Robert/Yoko', 'Unity/Nolan', 'Lane/Logan', 'Joy/Macey', 'Warren/Finn', 'Mechelle/Joshua', 'George/Acton'], 
    [], 
    []
    ]

Здесь я объединяю значения списка и делю их каждые 15 индексов

The splitted lists are : [
['Oscar/Baker/John/McKenzie/Gabriel/Gray/MacKensie/Vernon/Steel/Kathleen/Allistair/Kirk/Nissim/Faith/Quamar/Anthony/Summer/Kibo/Octavia/Clark/Amity/Jesse/Carlos/Kylie/Adria/Akeem/Blythe/Jana/Ethan/Brynne'], 
['Yolanda/Abel/Robert/Yoko/Unity/Nolan/Lane/Logan/Joy/Macey/Warren/Finn/Mechelle/Joshua/George/Acton'], 
[], 
[]
]

Вот ожидаемый результат: я хотел бы после разделенияпредыдущий список для выделения каждого нового списка переменной, а затем для отображения каждой из этих переменных в метке Tkinter

var1 = 'Oscar/Baker/John/McKenzie/Gabriel/Gray/MacKensie/Vernon/Steel/Kathleen/Allistair/Kirk/Nissim/Faith/Quamar/Anthony/Summer/Kibo/Octavia/Clark/Amity/Jesse/Carlos/Kylie/Adria/Akeem/Blythe/Jana/Ethan/Brynne'

var2 = 'Yolanda/Abel/Robert/Yoko/Unity/Nolan/Lane/Logan/Joy/Macey/Warren/Finn/Mechelle/Joshua/George/Acton'
...