我想使用excel文件来存储用python详细说明的数据.我的问题是我无法将图纸添加到现有的Excel文件中.在这里,我建议使用示例代码来解决此问题
import pandas as pd
import numpy as np
path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"
x1 = np.random.randn(100, 2)
df1 = pd.DataFrame(x1)
x2 = np.random.randn(100, 2)
df2 = pd.DataFrame(x2)
writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df1.to_excel(writer, sheet_name = 'x1')
df2.to_excel(writer, sheet_name = 'x2')
writer.save()
writer.close()
Run Code Online (Sandbox Code Playgroud)
此代码将两个DataFrame保存为两个表,分别名为"x1"和"x2".如果我创建两个新的DataFrame并尝试使用相同的代码添加两个新工作表'x3'和'x4',原始数据将丢失.
import pandas as pd
import numpy as np
path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"
x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)
x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)
writer = pd.ExcelWriter(path, engine = 'xlsxwriter')
df3.to_excel(writer, sheet_name = 'x3')
df4.to_excel(writer, sheet_name …Run Code Online (Sandbox Code Playgroud) 我目前有这个代码.它完美地运作.
它循环遍历文件夹中的excel文件,删除前两行,然后将它们保存为单独的excel文件,并将文件作为附加文件保存在循环中.
目前,每次运行代码时附加的文件都会覆盖现有文件.
我需要将新数据附加到已经存在的Excel工作表的底部('master_data.xlsx)
dfList = []
path = 'C:\\Test\\TestRawFile'
newpath = 'C:\\Path\\To\\New\\Folder'
for fn in os.listdir(path):
# Absolute file path
file = os.path.join(path, fn)
if os.path.isfile(file):
# Import the excel file and call it xlsx_file
xlsx_file = pd.ExcelFile(file)
# View the excel files sheet names
xlsx_file.sheet_names
# Load the xlsx files Data sheet as a dataframe
df = xlsx_file.parse('Sheet1',header= None)
df_NoHeader = df[2:]
data = df_NoHeader
# Save individual dataframe
data.to_excel(os.path.join(newpath, fn))
dfList.append(data)
appended_data = …Run Code Online (Sandbox Code Playgroud) 当您以下列方式从Python写入excel文件时:
import pandas
from openpyxl import load_workbook
book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx')
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
Run Code Online (Sandbox Code Playgroud)
公式和现有工作表中图表的链接将保存为值.
如何覆盖此行为以保留公式和图表链接?
我正在开发这个函数,它可以抓取网站上的 Fantasy Football 信息并将其写入 Excel 文件。最终,我希望在 Excel 工作簿的单独工作表中包含每周的信息。
下面发布的代码可以完美运行,直到我想将其写入 Excel 工作簿。该工作簿最终只有第 17 周的数据。似乎 pandas ExcelWriter 每当我真的希望它每次添加一个工作表时都会覆盖该工作表。
我在网上找不到任何有关在 pandas ExcelWriter 中创建带有循环的工作表的信息,所以我不完全确定它是否可以按照我想要的方式完成。
import bs4 as bs
import urllib.request
import pandas as pd
from pandas import ExcelWriter
for week in range(1,18):
#IGNORE MOST OF THIS STUFF BELOW BECAUSE IT WORKS AS IS
source = urllib.request.urlopen('http://fftoday.com/stats/playerstats.php?Season=2015&GameWeek='+str(week)+'&PosID=10&LeagueID=1').read()
soup = bs.BeautifulSoup(source, 'lxml')
table = soup.find('table', width='100%', border='0', cellpadding='2', cellspacing='1')
table_rows = table.find_all('tr')
player_data = {}
for tr in table_rows:
td = tr.find_all('td')
row = [i.text for …Run Code Online (Sandbox Code Playgroud) 我正在尝试动态设置和编写excel文件.这是我的代码
import pandas as pd
import copy
class OutputWriter(object):
def __init__(self, fmt_func, sheet_name='data'):
'''
Initializing...
'''
# NOTICE: Initialising with path set None since I do not know path yet
wrt = pd.ExcelWriter(None, engine='xlsxwriter')
self._writer = fmt_func(wrt, sheet_name)
self._sheet_name = sheet_name
def save(self, df, o_path):
'''
Save the file to a path
'''
# setting path in writer before saving
self._writer.path = o_path
df.to_excel(self._writer, sheet_name=self._sheet_name)
self._writer.save()
# Change first row color to blue
def fmt_func_blue(wrt, sheet_name):
# ERROR Cannot clone …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一系列 Pandas DataFrames 写入 Excel 工作表,以便:
对于 1),我以@MaxU 编写的辅助函数的形式找到了一个很好的解决方案:如何在不覆盖数据的情况下写入现有的 excel 文件(使用 Pandas)?. 对于 2) 我在这里找到了一个很好的解决方案。但是当我尝试将这些解决方案放在一起时,列宽根本不会改变。这是我的完整代码:
import pandas as pd
import os
from openpyxl import load_workbook
def append_df_to_excel(filename, df, sheet_name='Sheet1', startrow=None,
truncate_sheet=False,
**to_excel_kwargs):
"""
Append a DataFrame [df] to existing Excel file [filename]
into [sheet_name] Sheet.
If [filename] doesn't exist, then this function will create it.
@param filename: File path or existing ExcelWriter
(Example: '/path/to/file.xlsx')
@param df: DataFrame to save to …Run Code Online (Sandbox Code Playgroud) 我有一张excel表,在某些单元格中已有一些值.
例如: -
A B C D
1 val1 val2 val3
2 valx valy
Run Code Online (Sandbox Code Playgroud)
我想要大熊猫写入特定的细胞而不接触任何其他细胞,薄片等
这是我试过的代码.
import pandas as pd
from openpyxl import load_workbook
df2 = pd.DataFrame({'Data': [13, 24, 35, 46]})
book = load_workbook('b.xlsx')
writer = pd.ExcelWriter('b.xlsx', engine='openpyxl')
df2.to_excel(writer, "Sheet1", startcol=7,startrow=6)
writer.save()
Run Code Online (Sandbox Code Playgroud)
但是,此代码会删除较旧的单元格值.
我已经提到: - 如何写入现有的excel文件而不覆盖数据(使用pandas)? 但这个解决方案不起作用.
我正在尝试使用ExcelWriter将一些信息写入/添加到包含多个工作表的工作簿中.我第一次使用该函数时,我正在创建包含一些数据的工作簿.在第二个调用中,我想在不同位置的工作簿中将一些信息添加到所有工作表中.
def Out_Excel(file_name,C,col):
writer = pd.ExcelWriter(file_name,engine='xlsxwriter')
for tab in tabs: # tabs here is provided from a different function that I did not write here to keep it simple and clean
df = DataFrame(C) # the data is different for different sheets but I keep it simple in this case
df.to_excel(writer,sheet_name = tab, startcol = 0 + col, startrow = 0)
writer.save()
Run Code Online (Sandbox Code Playgroud)
在主代码中,我使用不同的col调用此函数两次,以在不同位置打印出我的数据.
Out_Excel('test.xlsx',C,0)
Out_Excel('test.xlsx',D,10)
Run Code Online (Sandbox Code Playgroud)
但问题是这样做输出只是函数的第二次调用,就像函数覆盖整个工作簿一样.我想我需要加载本案例中已经存在的工作簿?有帮助吗?
根据https://github.com/pandas-dev/pandas/pull/21251/files/09e5b456e1af5cde55f18f903ab90c761643b05a,我们应该能够将 DataFrame 附加到新的 XLSX 表。
根据文档,我尝试了以下操作:
>>> import pandas as pd
>>>
... d1 = pd.DataFrame({"A":['Bob','Joe', 'Mark'],
... "B":['5', '10', '20']})
>>> d2 = pd.DataFrame({"A":['Jeffrey','Ann', 'Sue'],
... "B":['1', '2', '3']})
>>>
>>> # Create XLSX document for ticker
... writer = pd.ExcelWriter('test.xlsx',engine='openpyxl')
>>> d1.to_excel(writer,sheet_name='d1')
>>> writer.save()
>>>
>>> writer = pd.ExcelWriter('test.xlsx',engine='openpyxl', mode='a')
>>> d2.to_excel(writer,sheet_name='d2')
>>> writer.save()
>>>
>>> pd.__version__
'0.23.4' # Just updated this per a comment
>>>
>>>
Run Code Online (Sandbox Code Playgroud)
结果是一个名为“test.xlsx”的工作簿,带有一个选项卡“d2”。
如何防止工作簿/工作表表单被覆盖?
我想将 panda 数据框的内容附加df到 Excel 表中。
这就是我所做的;
df.to_excel(excel_writer="target.xlsx", sheet_name="sheet_1")
Run Code Online (Sandbox Code Playgroud)
这段代码的问题是它覆盖了target.xlsx. target.xlsx结果我丢失了所有旧数据。我想要代码做的是附加而不是覆盖 Excel 工作表。
我正在使用Python 3.7。
pandas ×10
python ×10
excel ×7
xlsxwriter ×4
openpyxl ×3
python-3.x ×3
dataframe ×2
append ×1
for-loop ×1