如何将 Pandas 系列插入现有 Excel 文件的特定列(不从该文件中删除内容)?
How to insert a Pandas Series into a specific column of an existing Excel file (without deleting content from that file)?
我使用 pandas 从 Excel 导入了以下数据:
import pandas as pd
sht = pd.read_excel(path, 'Table', index_col=None, header=None, usecols = "A:C")
sht.head()
|-------+------------+----------|
| jon | tyrion | daenerys |
| sansa | cersei | rhaegar |
| arya | jaime | 0 |
| bran | tywin | 0 |
| robb | 0 | 0 |
| 0 | 0 | 0 |
|-------+------------+----------|
然后我在 pandas 中创建了以下系列 (D
):
D = pd.Series((sht[sht!=0]).values.flatten()).dropna().reset_index(drop=True)
D
|----------|
| jon |
| tyrion |
| daenerys |
| sansa |
| cersei |
| rhaegar |
| arya |
| jaime |
| bran |
| tywin |
| rob |
|----------|
如何将系列 D
插入 sht 的 D 列(我的传播 sheet 的 "Table" sheet)?
我试过了:
writer = pd.ExcelWriter(path, engine='openpyxl')
K.to_excel(writer,'Table', startrow=0, startcol=4, header=False, index=False)
writer.save()
但是它从我的传播sheet中删除了所有其他选项卡,并且还删除了我的传播A:C列中的值sheet...
试试这个
- 打开 excel 文件并将内容存储在 panda 对象中 让我们说 df.
- 在 df['new column']
中创建新列
- 将值存储在新列中,现在 panda 拥有您之前的所有值 + 新列
- 使用 ExcelWriter 将 df 保存到 excel 文件
PS:打开 excel 文件并在 pandas 中写入 excel 文件时,可以选择打开特定的 sheet 即 sheet_name=
pd.ExcelWriter
和.to_excel
方法pandas覆盖现有文件。您不是在修改现有文件,而是将其删除并写入一个同名的新文件。
如果您想写入现有的 excel 文件,您可能需要使用 openpyxl
.
import openpyxl
# open the existing file
wb = openpyxl.load_workbook('myfile.xlsx')
# grab the worksheet. my file has 2 sheets: A-sheet and B-sheet
ws = wb['A-sheet']
# write the series, D, to the 4th column
for row, v in enumerate(D, 1):
ws.cell(row, 4, v)
# save the changes to the workbook
wb.save('myfile.xlsx')
我使用 pandas 从 Excel 导入了以下数据:
import pandas as pd
sht = pd.read_excel(path, 'Table', index_col=None, header=None, usecols = "A:C")
sht.head()
|-------+------------+----------|
| jon | tyrion | daenerys |
| sansa | cersei | rhaegar |
| arya | jaime | 0 |
| bran | tywin | 0 |
| robb | 0 | 0 |
| 0 | 0 | 0 |
|-------+------------+----------|
然后我在 pandas 中创建了以下系列 (D
):
D = pd.Series((sht[sht!=0]).values.flatten()).dropna().reset_index(drop=True)
D
|----------|
| jon |
| tyrion |
| daenerys |
| sansa |
| cersei |
| rhaegar |
| arya |
| jaime |
| bran |
| tywin |
| rob |
|----------|
如何将系列 D
插入 sht 的 D 列(我的传播 sheet 的 "Table" sheet)?
我试过了:
writer = pd.ExcelWriter(path, engine='openpyxl')
K.to_excel(writer,'Table', startrow=0, startcol=4, header=False, index=False)
writer.save()
但是它从我的传播sheet中删除了所有其他选项卡,并且还删除了我的传播A:C列中的值sheet...
试试这个
- 打开 excel 文件并将内容存储在 panda 对象中 让我们说 df.
- 在 df['new column'] 中创建新列
- 将值存储在新列中,现在 panda 拥有您之前的所有值 + 新列
- 使用 ExcelWriter 将 df 保存到 excel 文件
PS:打开 excel 文件并在 pandas 中写入 excel 文件时,可以选择打开特定的 sheet 即 sheet_name=
pd.ExcelWriter
和.to_excel
方法pandas覆盖现有文件。您不是在修改现有文件,而是将其删除并写入一个同名的新文件。
如果您想写入现有的 excel 文件,您可能需要使用 openpyxl
.
import openpyxl
# open the existing file
wb = openpyxl.load_workbook('myfile.xlsx')
# grab the worksheet. my file has 2 sheets: A-sheet and B-sheet
ws = wb['A-sheet']
# write the series, D, to the 4th column
for row, v in enumerate(D, 1):
ws.cell(row, 4, v)
# save the changes to the workbook
wb.save('myfile.xlsx')