初学Excel

之前只知道txt文件的读写也就是with open()as file等等,近来了解到了能够使用Python对Excel表格进行读写,由于是自学的,很多资源可能在其它地方可以看到,不过注释都是我自己的理解和总结。

# 运用pandas库,该库是为数据分析诞生的库
import pandas as pd
from pandas import DataFrame,Series

# DataFrame是操作二维序列的数组有行有列,Series操作一维

# df=pd.read_excel("1.xlsx")
# # 没给参数只打印前五行
# print(df.head())
# -----------------读取Excel表格-------------------
# 打印特定表单的东西,默认第一个
# df=pd.read_excel("1.xlsx",sheet_name="Sheet1")
# print(df.head())

# df=pd.read_excel("1.xlsx")
# 打印每列的列名,可以知道有多少列
# data=df.columns.values
# 打印特定行
# data=df.loc[0].values#不包含列名,返回的是列表
# 打印多行
# data=df.loc[[0,1]].values #df.loc[0:1]同等效果
# 打印每行特定的列,需要指出打哪一列的值
# data=df.loc[[0,1],["姓名","班级"]].values
# 打印特定行特定列(也就是指定shell里面的值)
# data=df.iloc[0,0]
# 打印所有行的特定列
# data=df.loc[:,["姓名"]].values
# 打印行序号,可以知道有多少行
# data=df.index.values
# print(data)


# --------------------写入Excel表格-----------------------
# 首先新建一个Excel文件
# df=pd.DataFrame()
# df.to_excel("path")

# # 新建完毕后就可以创建数据并形成二维数据
# data={"列名":["数据一","数据二","数据三"]}
# index可以自定义索引默认为数字,个人认为还是按照数字来比较好
# dict_list=pd.DataFrame(data,index=["first","second","third"])
# # 向创建的Excel表格里面写入
# write=pd.ExcelWriter("1.xlsx")
# # ps:index=False可以从A列开始写,不然A列是索引
# dict_list.to_excel(write,sheet_name="Sheet1",index=False)
# # 记得保存和关闭
# write.save()
# write.close()

# ----------------关于追加Excel表格数据可以和修改数据放在一起------------
# 实质上是读取出来再进行增删改查,最后在写入Excel表中。所以接下来直接学习DataFrame的操作
df=pd.DataFrame(data={"list":[1,2,3,4]})
# 查找每列每行元素可参考读取Excel表格

# 删除
# 第一个参数是索引或者是列名等标签,第二个参数0代表行,1代表列默认是0
# print(df.drop(0,axis=0))#删除第一行
# print(df.drop("list",axis=1))#删除list这一列

# 修改.直接找到某一个值赋值更改(涉及到查找的知识点)
# df.iloc[3,0]=1
# print(df)

# 增加
# # 列
# df["list2"]=[2,3,4,5]
# # print(df)
#
# # 先把所有的列名提取出来
# col=df.columns.tolist()
# print(col)
# # 再增加到特定位置一个列名
# col.insert(0,"list3")
# print(col)
# # 对原来的格式重新构建,此时不会有值.如果不加columns=col,结果就是重构行
# df=df.reindex(columns=col)
# print(df)
# # 最后对这列赋值
# df["list3"]=[3,4,5,6]
# print(df)
# 行
# 创建一个新行,并指明一个索引
new=pd.DataFrame({"list":2},index=[1])
# 使用append加入进去
df=df.append(new,ignore_index=True)#注意一定要忽略新建行的索引才可以按顺序加进去
print(df)


# --至于追加同一个Sheet而不覆盖,网上大多数的思路是读出,在DataFrame操作后最终写入--
# 根据这个思路我可以自己写一个类,负责实现该功能。自己试试看吧!
posted @ 2020-09-19 16:49  starandsteve  阅读(150)  评论(0)    收藏  举报