Я пытаюсь импортировать 2 набора данных из одного рабочего стола Excel, они находятся в разных диапазонах. Во-первых, у меня есть функция, позволяющая мне вводить диапазон для извлечения данных из диапазона. Затем я хочу добавить данные каждого диапазона как 1 DataFrame. Код работает от извлечения данных до добавления данных. Я преобразовал его как DataFrame, но он все еще находится в списке. Когда я экспортирую в файл excel, это только 2 строки данных, потому что есть 2 подсписка. Мой ожидаемый результат: 1 DataFrame, а не список, данные в строках и столбцах.
#code to import workbook
from openpyxl import load_workbook
from openpyxl.utils import get_column_interval
import re
#function allow me to enter range
def load_workbook_range(range_string, ws):
col_start, col_end = re.findall("[A-Z]+", range_string)
data_rows = []
for row in ws[range_string]:
data_rows.append([cell.value for cell in row])
return pd.DataFrame(data_rows, columns=get_column_interval(col_start, col_end))
# load workbook
wb = load_workbook(filename=b, read_only=True)
ws = wb.active
List = ['B24:D29','B2:D11'];
#create list for list and extra data from different range (List)
df_list=[]
for r in List:
y=load_workbook_range(r,ws)
f=pd.DataFrame(y)
f.columns = f.iloc[0]
g=f.drop(f.index[1])
df_list.append(g)
df_list
#output
[0 InComplete offer NaN Response
0 InComplete offer None Response
2 1 name Marie
3 2 a 13.7716
4 3 b 75.2104
5 4 c 26.8648,
0 InComplete offer NaN Response
0 InComplete offer None Response
2 1 name Marie
3 2 invest 13.7716
4 3 capital 75.2104
5 4 income 26.8648
6 5 expense 83.1496
7 6 school 43.5749
8 7 transport 85.2239
9 8 others 82.3117]
#if I export to excel file, it is a list
w = pd.DataFrame(df_list)
w.to_excel (new_path, index = False, header=True)
w
#output in excel file
0
0 0 InComplete offer NaN Response 0 InCo...
1 0 InComplete offer NaN Response 0 ...
#my expect output when export to excel file , look like below , in 3 different columns and multi rows.
0 InComplete offer NaN Response
0 InComplete offer None Response
2 1 name Marie
3 2 a 13.7716
4 3 b 75.2104
5 4 c 26.8648,
0 InComplete offer NaN Response
0 InComplete offer None Response
2 1 name Marie
3 2 invest 13.7716
4 3 capital 75.2104
5 4 income 26.8648
6 5 expense 83.1496
7 6 school 43.5749
8 7 transport 85.2239
9 8 others 82.3117
Цените, если кто-нибудь может помочь и спасибо. МС
1 ответ
Пытаться
i = 0
for r in List:
y = load_workbook_range(r,ws)
f = pd.DataFrame(y)
f.columns = f.iloc[0]
g = f.drop(f.index[1])
i += 1
if i == 1:
df_list = g
else:
df_list = df_list.append(g)
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.