python将数据写入excel(pandas,xlsxwriter)

3 篇文章 0 订阅
2 篇文章 0 订阅
import time

import pandas as pd

# =====================series================================
# data为插入列的数据,index为对应的索引,默认0开始
s = pd.Series(data=['1', '2', '3', '4', '5'])
print(s)
"""
0    1
1    2
2    3
3    4
4    5
dtype: object
"""
# 指定索引
s = pd.Series(data=['1', '2', '3', '4', '5'], index=[1, 2, 3, 4, 5])
print(s)
"""
1    1
2    2
3    3
4    4
5    5
dtype: object
"""
# 字典形式传值,key为索引,value为data
s = pd.Series({"index_1": 1, "index_2": 2, "index_3": 3, "index_4": 4})
print(s)
"""
index_1    1
index_2    2
index_3    3
index_4    4
dtype: int64
"""
# tail(n),返回最后n行数据;head(n),返回开始n行
print(s.tail(2))
print(s.head(2))
"""
index_3    3
index_4    4
dtype: int64
index_1    1
index_2    2
dtype: int64
"""

# ==================================Dataframe===============================
"""
参数名称	说明
data	输入的数据,可以是 ndarray,series,list,dict,标量以及一个 DataFrame。
index	行标签,如果没有传递 index 值,则默认行标签是 np.arange(n),n 代表 data 的元素个数。
columns	列标签,如果没有传递 columns 值,则默认列标签是 np.arange(n)。
dtype	dtype表示每一列的数据类型。
copy	默认为 False,表示复制数据 data。
"""
data_list = []
from datetime import datetime

# 利用循环,将每行数据拼接好,最后整体写入excel
for i in range(5):
    row = ['标题' + str(i), '作者' + str(i), datetime.now().strftime('%Y-%m-%d %H:%M:%S'), 'http://pdf_' + str(i)]
    data_list.append(row)
df = pd.DataFrame(data=data_list, columns=['title', 'author', 'datatime', 'pdf_url'])
df.to_excel('xxxx.xlsx', index=False)  # False为不显示索引
print(df)
# 利用字典,将每列拼接好,整体写入
data_list_2 = {"title": ['标题' + str(i) for i in range(5)],
               "author": ['作者' + str(i) for i in range(5)],
               "datatime": [datetime.now().strftime('%Y-%m-%d %H:%M:%S') for i in range(5)],
               "pdf_url": ['http://pdf_' + str(i) for i in range(5)]}
df = pd.DataFrame(data=data_list_2, columns=['title', 'author', 'datatime', 'pdf_url'])
print(df)
"""
  title author                   datatime       pdf_url
0   标题0    作者0 2022-06-14 23:20:22.209857  http://pdf_0
1   标题1    作者1 2022-06-14 23:20:22.209857  http://pdf_1
2   标题2    作者2 2022-06-14 23:20:22.209857  http://pdf_2
3   标题3    作者3 2022-06-14 23:20:22.209857  http://pdf_3
4   标题4    作者4 2022-06-14 23:20:22.209857  http://pdf_4
"""
# 新增列
df['img_url'] = pd.Series(['xxx_{}.png'.format(str(i)) for i in range(5)])
print(df)
"""
  title author             datatime       pdf_url    img_url
0   标题0    作者0  2022-06-14 23:38:33  http://pdf_0  xxx_0.png
1   标题1    作者1  2022-06-14 23:38:33  http://pdf_1  xxx_1.png
2   标题2    作者2  2022-06-14 23:38:33  http://pdf_2  xxx_2.png
3   标题3    作者3  2022-06-14 23:38:33  http://pdf_3  xxx_3.png
4   标题4    作者4  2022-06-14 23:38:33  http://pdf_4  xxx_4.png
"""
# 输出对应行的数据
print(df.loc[4])  # 具体索引名,如果设置了index的话
print(df.iloc[4])  # 行号打印
"""
title                       标题4
author                      作者4
datatime    2022-06-14 23:41:22
pdf_url            http://pdf_4
img_url               xxx_4.png
Name: 4, dtype: object
"""
# 切片方式返回对应行数据
print(df.iloc[0:3])
"""
  title author             datatime       pdf_url    img_url
0   标题0    作者0  2022-06-14 23:44:51  http://pdf_0  xxx_0.png
1   标题1    作者1  2022-06-14 23:44:51  http://pdf_1  xxx_1.png
2   标题2    作者2  2022-06-14 23:44:51  http://pdf_2  xxx_2.png"""

# 行列交换
print(df.iloc[0:3].T)
"""
title                     标题0                  标题1                  标题2
author                    作者0                  作者1                  作者2
datatime  2022-06-14 23:47:09  2022-06-14 23:47:09  2022-06-14 23:47:09
pdf_url          http://pdf_0         http://pdf_1         http://pdf_2
img_url             xxx_0.png            xxx_1.png            xxx_2.png
"""
# =====================================向excel中插入图片,需要提前下载xlsxwriter
writer = pd.ExcelWriter('xxxx.xlsx', engine='xlsxwriter')
df.to_excel(writer)  # 将DataFrame数据导入writer
workbook = writer.book  # 提取workbook对象
worksheet = workbook.get_worksheet_by_name("Sheet1")
# 指定单元格插入,设置图片样式,大家可以在项目路径下搞个图片试试。
worksheet.insert_image('D4', 'u=1108006054,2600494244&fm=218&app=126&size=f242,150&n=0&f=PNG.jpg', {
    'x_offset': 10,
    'y_offset': 10,
    'x_scale': 1,
    'y_scale': 1,
    'url': None,
    'tip': None,
    'image_data': None,
    'positioning': None,
})  # 插入图片 到D4位置
writer.save()  # 保存表格文件
# pandas将excel数据转为列表
    df = pd.read_excel('xxx.xlsx', sheet_name='Sheet1').values.tolist()

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值