Перебирайте каждую строку в столбце номер счета и используйте их для чтения других файлов Excel - PullRequest
1 голос
/ 09 февраля 2020

Мне нужно провести некоторый анализ данных в некоторых файлах Excel (которые сохраняются как номера учетных записей соответствующих клиентов). У меня также есть мастер-лист со всеми номерами счетов в столбце. Мне нужно перебрать столбец «Номер счета» в MasterSheet.xlsx и прочитать файл Excel соответствующей учетной записи (например, для номера счета 123 существует «123.xlsx», который находится в том же каталоге, что и Master Sheet). Затем мне нужно назначить соответствующий номер счета в качестве имени переменной.

Чтобы получить общее представление о том, что я хочу сделать, обратитесь к приведенному ниже коду. Я бы предпочел использовать pandas или openpyxl.

master = pd.read_excel("MasterSheet.xlsx")

for account in master.iterrows():
    filename= str(account)+'.xlsx'
    account= pd.read_excel(filename)

Как видите, я пытался создать имя файла для каждого номера учетной записи, считываемого для l oop. А затем назначьте номер учетной записи в качестве имени переменной для каждого кадра данных учетной записи.

Я знаю, что это очень плохо сформулированный вопрос, но я пытался и не мог сформулировать его лучше. Я только начал использовать python. Если вам нужна дополнительная информация, пожалуйста, спросите.

Ответы [ 4 ]

1 голос
/ 09 февраля 2020

Один из способов сделать это:

import pandas as pd

master = pd.read_excel("MasterSheet.xlsx")

master['Account File'] = master['Account Number'].apply(lambda x: pd.read_excel(str(x)+'.xlsx'))

Теперь все номера ваших учетных записей, файлы учетных записей и другие данные находятся в одной структуре данных для простого повторного использования.

Позвольте мне знаю, поможет ли это!

1 голос
/ 09 февраля 2020

У меня также есть мастер-лист со всеми номерами счетов в столбце. Мне нужно python, чтобы перебрать столбец «Номер счета» в «MasterSheet.xlsx» и прочитать файл Excel соответствующей учетной записи (например: для номера счета 123 у меня есть «123.xlsx», который находится в том же месте в качестве основного листа), а затем назначьте этот номер учетной записи в качестве имени переменной.

Поскольку ваш account_number сохраняется в столбце df['Account Number'], а файлы называются account_number.xlsx, вы можете просто выполните следующие действия:

import pandas as pd

master = pd.read_excel("MasterSheet.xlsx")

for account in master["Account Number"]:
    filename = str(account) + ".xlsx"
    account = pd.read_excel(filename)
1 голос
/ 09 февраля 2020
#Import
import pandas as pd

#Read Master file
master = pd.read_excel("MasterSheet.xlsx")

#Make a dictionary - 
#   - Keys will be the each account number
#   - Values will be each dataframe which are account number xlsx files

dictionary1 = {}
for index, row in master.iterrows():
    dictionary1[row['AccountNumber']] = pd.read_excel(str(row['AccountNumber']) + '.xlsx')

#Iterate each dataframe via this code
next(iter(dictionary1.values())) 
0 голосов
/ 09 февраля 2020

Для файла Excel test.xlsx:

  account
0   test1
1   test2

L oop над account столбцом и загрузка нового файла в новый df2:

import pandas as pd

df = pd.read_excel("test.xlsx")
for index, row in df.iterrows():
    df2 = pd.read_excel(row['account'] + '.xlsx')

Выход:

   data
0     1
1     2

   data
0     3
1     4
...