PythonPandas操作Excel表格⽂件:创建新表格,追加数据
前⾔:
python操作excel表格⽂件的增删读写,⼀般需要⽤到的第三⽅库有xlwt,xlrd。xlrd负责读取excel,xlwt负责写⼊excel⽂件。这种操作⽅法⽐较繁琐,效率还不错,通俗易懂。
那么有没有⼀种更简便,操作更简单,效率还差不多的库呢?答案当然是必须有的。毕竟Python是以丰富的第三⽅库⽽作为热点的。Pandas是xlwt,xlrd库的封装库,拥有更全⾯的操作对象,csv,excel,dataframe等等。在xlwt等读写库的基础上可以实现⼀个库操作不同格式的⽂件。
有点问题的是,Pandas操作excel⽂件⽐xlwt,xlrd更加抽象⼀些。
接下来让我们⼀起去探索⼀下:
1.创建 Excel表格⽂件
def create_excel(self):
"""
创建excel⽂件
:return:
"""
file_path = os.path.dirname(os.path.abspath(__file__)) + "/demo.xlsx"
df = pd.DataFrame(columns=["title", "content"])
<_excel(file_path, index=False)
在Dataframe对象中指定列名,columns参数表⽰第⼀⾏的列名值,是⼀个列表。
⽣成的excel表格如下:
2.Excel⽂件写⼊数据
2.1 空⽩excel写⼊数据
df = pd.DataFrame()
<_excel(file_path)
2.1⾮空⽩excel追加数据
class MakePandas():
def append_excel(self, df, content_list):
"""
excel⽂件中追加内容
:return:
content_list:待追加的内容列表
"""
print("进⼊主任务")
ds = pd.DataFrame(content_list)
print(ds)
df = df.append(ds, ignore_index=True)
excel_name = "/demo.xlsx"
excel_path = os.path.dirname(os.path.abspath(__file__)) + excel_name
<_excel(excel_path, index=False, header=False)
def remove_row(self, df, row_list):
"""
excel删除指定列
:
param df:
:param row_list:
:return:
"""
python怎么读取excel文件数据df = df.drop(columns=row_list)
return df
def create_excel(self):
"""
创建excel⽂件
:return:
"""
file_path = os.path.dirname(os.path.abspath(__file__)) + "/demo.xlsx"
df = pd.DataFrame(columns=["title", "content"])
<_excel(file_path, index=False)
if __name__ == '__main__':
excel_name = "/demo.xlsx"
excel_path = os.path.dirname(os.path.abspath(__file__)) + excel_name
m = MakePandas()
df = pd.read_excel(excel_path, header=None)
b = []
for i in range(1, 10):
a = []
a.append(i)
a.append(i * 2)
b.append(a)
df = m.append_excel(df, b)
# print(df)
第⼀步,读取excel⽂件。需要注意的是,创建excel⽂件是需要指定index=False,不显⽰索引列。
第⼆步,构造数据列表,数据格式为 [[“a”,“b”],[“c”,“d”]],使⽤pandas库将列表转换为DataFrame对象第三步,调⽤Pandas的append⽅法,将待追加的dataframe对象加⼊⽣成新的dataframe对象。
第四步,⽣成新的excel⽂件。注意,指定index=False,headers=False,避免⽣成⼲扰⾏列数据。
最终的excel⽂件内容如下:
有问题的⼩伙伴可以留⾔讨论⼀下,Pandas刚刚接触,⼤家⼀起相互交流,相互学习吧。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论