Python使用Pandas将Excel转换为CSV及数据清洗实战
本文介绍如何利用Python的Pandas库将Excel文件转换为CSV格式,并演示在转换过程中对特定字段进行清洗和提取的操作。通过示例代码展示如何修改URL协议、处理换行符以及从固定位置截取子字符串,最后提供将列表数据直接写入Excel或CSV文件的多种方法,帮助开发者高效处理结构化数据。
Excel转CSV及数据清洗流程
由于客户提供的原始数据为Excel格式,而实际使用场景中需要CSV格式,同时需要对部分字段进行预处理(例如从某字段中提取固定位置的字符并独立成列),以下记录使用Anaconda环境下的处理流程;
import pandas
df = pandas.read_excel("/***/***.xlsx")
df.columns = [内部为你给你的excel每一列自定义的名称](比如我给我的excel自定义列表为:
["url","productName","***",。。。,"***"])
(此处开始执行具体的列数据处理逻辑,根据实际需求对每一列进行清洗或转换)
df["url"] = df["url"].str.replace("http", "https")
df["***"] = df["***"].str.replace("\n", " ")
df["stract_content"] = df["url"].str[-6:]
数据处理完成后,需执行保存操作;
df.drop_duplicates().fillna("").to_csv("/***/***.csv", index=False, encoding="utf-8", sep="\3")
代码中上方指定了源文件的读取路径,下方指定了目标文件的保存路径;
处理结束后,可通过以下命令验证结果;
使用df.head(5)查看前5行数据,以确认处理结果是否符合预期;
下面总结将List列表内容存储到Excel和CSV文件的方法;
直接参考以下代码示例;
将列表存储到CSV文件:以下代码使用codes包进行操作;
List存储为CSV与Excel的方法
with codecs.open("result.csv", "w", encoding="utf-8") as fw:
for i in final_res:
fw.write(u"\3".join([j if isinstance(j, unicode) else str(j).decode("utf-8") for j in i]) + "\n")
以下是使用Pandas库的操作方式;
columns参数接收字符串列表,作为表格的列标题;
df = pandas.DataFrame(my_list)
df.columns = ["col1", "col2", ...]
df.to_excel("result.xlsx", index=False, encoding="utf-8")
也可以先保存为CSV文件,随后使用Pandas将其转换为Excel格式;
with codecs.open("result.csv", "w", encoding="utf-8") as fw:
for i in final_res:
fw.write(u"\3".join([j if isinstance(j, unicode) else str(j).decode("utf-8") for j in i]) + "\n")
with pandas.ExcelWriter('result.xlsx') as ew:
pandas.read_csv("result.csv", sep='\3').to_excel(ew, index=False, header=["文件名", "query调用时间", "调用ip", "调用类型", "query结束时间", "行序号", "top5 sku", "文件总耗时"], sheet_name="result", encoding="utf-8")
或者采用另一种方式;
with codecs.open("result.csv", "w", encoding="utf-8") as fw:
for i in final_res:
fw.write(u"\3".join([j if isinstance(j, unicode) else str(j).decode("utf-8") for j in i]) + "\n")
df = pandas.read_csv("result.csv", sep="\3")
df.columns = ["col1", "col2", ...]
df.to_excel("result.xlsx", index=False, encoding="utf-8")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









