【Pandas】DataFrame+to_excel学习


此文仅进行学习记录

1、DataFrame

import pandas as pd

data1 = [['Google', 10], ['Runoob', 12], ['Wiki', 13]]  # 列表型(列表嵌套列表),行标头与列表头默认为索引
data2 = {'Site': ['Google', 'Runoob', 'Wiki'], 'Age': [10, 12, 13]}  # N维数组对象Ndarray,ndarray长度必须相同,
data3 = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20},
         {'a': 111, 'b': 222, 'c': 333}]  # 字典型(列表嵌套字典),键为列表头。若没有,则此列的值为NaN


# 可以传值的类型有:列表型、ndarray型、字典型
# loc[index]代表返回数据
def datas(data):
    df = pd.DataFrame(data, index=['第一行', '第二行', '第三行'])
    print(df)  # 返回的是pandas dataframe类型


datas(data1)
datas(data2)
datas(data3)

# index代表行表头,columns代表列标题
df1 = pd.DataFrame(data1, columns=['第一列', '第二列'], dtype=str)
print(df1)
print(df1.loc[0])  # 返回的是pandas series类型

2、to_excel

参考文章:Pandas写入Excel函数——to_excel 技术总结

①写入单个sheet中

import pandas as pd

# 写入单个sheet中
df1 = pd.DataFrame({'One': [1, 2, 3]})  # Ndarray型
# 新建excel1.xlsx文件,sheet名称为Sheet1。若存在,则覆盖。
df1.to_excel('excel1.xlsx', sheet_name='Sheet1', index=False) # index false为不写入索引

②通过ExcelWriter写入多个工作表数据中

df1 = pd.DataFrame({'One': [1, 2, 3]})
df2 = pd.DataFrame({'Two': [4, 5, 6]})

with pd.ExcelWriter('excel1.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)

df4 = pd.DataFrame({'Four': [11, 22, 33]})
df5 = pd.DataFrame({'Five': [55, 66, 77]})

with pd.ExcelWriter('excel1.xlsx', mode='a') as writer:  # 默认的mode为w,即代表覆盖写入。a代表不覆盖新增。
    df4.to_excel(writer, sheet_name='Sheet4', index=False)
    df5.to_excel(writer, sheet_name='Sheet5', index=False)

③对excel中的工作表内容进行修改与追加

# startrow、startcol代表修改/追加的起始行、列
# header代表是否写入列名
# 借用openpyxl的load_excel可读取excel的工作表内容
df6 = pd.DataFrame({'Six': [11, 22, 33]})
df7 = pd.DataFrame({'SEVEN': ['AA', 'BB', 'CC']})
with pd.ExcelWriter('excel1.xlsx', mode='a') as writer:
    book = load_workbook('excel1.xlsx')
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)  # 复制book的worksheets为writer.sheets
    df6.to_excel(writer, sheet_name='Sheet5', index=False, startrow=0, startcol=3)
    df7.to_excel(writer, sheet_name='Sheet5', index=False, header=False, startrow=4, startcol=0)
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值