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()
python将数据写入excel(pandas,xlsxwriter)
于 2022-06-15 00:56:43 首次发布