Ваша интуиция правильная; нет ничего плохого в синтаксисе вашего кода.
Вы получаете AttributeError
, потому что вы читаете данные с нескольких листов в своей книге, генерируя словарь DataFrames (вместо одного DataFrame), из которого вы пытаетесь to_csv
(метод доступен только для DataFrame).
Когда ваш код написан, ключи создаваемого словаря соответствуют именам рабочих листов, а значения являются соответствующими DataFrames. Все это объяснено в документах для метода read_excel()
.
Чтобы написать файл csv, содержащий агрегированные данные со всех листов, вы можете прокручивать листы и добавлять каждый DataFrame в ваш файл (это работает, если ваши листы имеют одинаковую структуру и размеры):
import pandas as pd
import numpy as np
sheets = ['pnl1 Data ','pnl2 Data','pnl3 Data','pnl4 Data']
for sheet in sheets:
df = pd.read_excel("filelocation.xlsx",
sheetname=sheet,
skiprows=8,
parse_cols="B:D",
keep_default_na='FALSE',
na_values=['NULL'])
with open('filelocation.csv', 'a') as f:
df.to_csv(f, line_terminator=',', index=False, header=False)
Спасибо за Вашу справку, управляемую для сортировки его следующим образом:
<ItemGroup>
<LibraryFiles Include="$(LibrariesReleaseDir)\**\*.*"
Exclude="$(LibrariesReleaseDir)\**\.svn\**" />
</ItemGroup>
Оказывается, что сопоставление с образцом в основном работает на файлах, таким образом, необходимо исключить все НИЖЕ эти .svn
каталоги (.svn\\**
) для MSBuild для исключения .svn
сам каталог.
Вот еще лучший способ сделать это, действительно рекурсивно. Я, может казаться, не получаю Ваше решение пойти больше чем 1 уровень глубоко:
<LibraryFiles
Include="$(LibrariesReleaseDir)**\*.*"
Exclude="$(LibrariesReleaseDir)**\.svn\**\*.*"/>
Таким образом, проблема с объединением в цепочку переменных по некоторым причинам в msbuild. Следующие работы для меня, заметьте, что я должен только использовать относительные пути на основе переменной MSBuildProjectDirectory.
<CreateItem Include="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\*.*"
Exclude="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\.svn\**">
<Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>
следующее не работает:
<PropertyGroup>
<WebProjectDir>$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI</WebProjectDir>
</PropertyGroup>
<CreateItem Include="$(WebProjectDir)\**\*.*"
Exclude="$(WebProjectDir)\**\.svn\**">
<Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>
Очень странный! Я просто потратил как 3 часа на этого.