Получение пустых значений из Excel через Pandas ⇐ Python

Программы на Python
Anonymous
Получение пустых значений из Excel через Pandas

Сообщение Anonymous »

У меня есть модель файла Excel с четырьмя листами: «s1», «s2», «s3» и «Заключение».
Листы «s1», «s2» и «s3» пусты, а лист «Заключение» содержит формулы для анализа данные из других листов.

Код: Выделить всё

'Conclusion'
по сути:



A
B
C

< /thead>


среднее(s1)
среднее(s2)
среднее(s3)


среднее(s1)
среднее (s2)
среднее(s3)



ШАГ 1:
Я создал программу для заполнения листов «s1», «s2» и «s3» и сохранения модель.
ШАГ 2:
Я получаю результаты из листа «Заключение».
Проблема в том, что полученные результаты всегда пусты, если я вручную не открываю, не сохраняю и не закрываю файл Excel между шагами 1 и 2. Как я могу прочитать значения ячеек, не открывая файл Excel вручную?
Я использую следующий код:

Код: Выделить всё

import pandas as pd
import numpy as np

def create_random_df():
# Define size of data matrix
rows = 10
cols = 5

# Generate random data
data = np.random.rand(rows, cols)

# Create column names
columns = ['A', 'B', 'C', 'D', 'E']

# Create the DataFrame
df = pd.DataFrame(data, columns=columns)

return df

# Creating different sheets to append to a main file
sheet_names = ['s1', 's2', 's3']
sheet_dfs = dict()

for k in sheet_names:
sheet_dfs[k] = create_random_df()

# Appending sheets into a file
file_path = r'path\to\file.xlsx'

with pd.ExcelWriter(file_path, engine='openpyxl', mode='a', if_sheet_exists='overlay') as writer:
for k,v in sheet_dfs.items():
v.to_excel(writer, sheet_name=k, header=True, index=False, float_format='%.2f')

df = pd.read_excel(file_path, sheet_name='Conclusion', usecols='A:C', nrows=5, header=0)
Я пытался прочитать лист «Заключение», используя pd.read_excel и openpyxl.load_workbook, но мне пришлось открыть и закрыть файл Excel, прежде чем запускать последнюю строку моего кода:
p>
df = pd.read_excel(file_path,sheet_name='Conclusion', usecols='A:C', nrows=5, header=0).
В противном случае я получаю значения None или NaN.


Подробнее здесь: https://stackoverflow.com/questions/790 ... ugh-pandas

Вернуться в «Python»