美文网首页
Python-137 合并多个Excel文件并根据几个列,删除重

Python-137 合并多个Excel文件并根据几个列,删除重

作者: RashidinAbdu | 来源:发表于2022-02-16 18:05 被阅读0次
  • 合并多个Excel文件并根据几个列,删除重复值,保留唯一值:

  • 1.合并文件:

# 重要:安装xlrd时要安装以下这个!
# pip install xlrd==1.2.0
# pip install openpyxl
# pip install pandas

import os
import pandas as pd
import numpy as np

dir = "E:\\FilesFromOthers\\LY_Merge\\File"  # 设置工作路径,读取其中的多个excel表

# 新建列表,存放文件名(可以忽略,但是为了做的过程能心里有数,先放上)
filename_excel = []

# 新建列表,存放每个文件数据框(每一个excel读取后存放在数据框)
frames = []

for root, dirs, files in os.walk(dir):
    for file in files:
        filename_excel.append(os.path.join(root, file))

        # excel转换成DataFrame
        df = pd.read_excel(os.path.join(root, file))
        frames.append(df)
# 打印文件名
print(filename_excel)

# 合并所有数据
result = pd.concat(frames)

# 查看合并后的数据
result.head()
result.shape

# 合并文件输出
result.to_excel('E:\\FilesFromOthers\\LY_Merge\\Result\\MergedFile.xlsx', index=False)
  1. 删除重复值并得到非重复值文件,进行输出:

#! /usr/bin/python
# -*- coding: utf-8 -*-
# 根据商品编号来判断,如果上一行和下一行的这两列都相同那么删除重复的行,保留一行。
# 导入pandas包并重命名为pd
import pandas as pd
import sys
import importlib
import copy
if __name__ == '__main__':
    importlib.reload(sys)
    # 读取Excel中Sheet1中的数据 dtype = {"商品编号":str, "考核价":str, "裸价":str}
    data = pd.DataFrame(pd.read_excel('E:\\FilesFromOthers\\LY_Merge\\Result\\MergedFile.xlsx', 'Sheet1', dtype=str))
    # 查看读取数据内容
    print(data)

    # 查看是否有重复行
    re_row = data.duplicated()
    print(re_row)

    # 查看去除重复行的数据
    no_re_row = data.drop_duplicates()
    print(no_re_row)

    # 查看基于['考核价', '裸价']列去除重复行的数据
    wp = data.drop_duplicates(subset = ['Latitude', 'Longitude', 'Altitude', 'Stand age', 'AGB', 'BGB', 'Longitude', 'Origin',  'Height', 'DBH'])
    print(wp)
    # 将去除重复行的数据输出到excel表中
    wp.to_excel("E:\\FilesFromOthers\\LY_Merge\\Result\\Final-drop-duplicates.xlsx")

# 删除九个对应的 Latitude, Longitude, Altitude, AGB, BGB, Origin, Stand age, Height和DBH
  • 输出为csv文件:
data3 = pd.DataFrame(pd.read_excel('E:\\FilesFromOthers\\LY_Merge\\Result\\Final-drop-duplicates.xlsx', 'Sheet1', dtype=str))
data3.to_csv('E:\\FilesFromOthers\\LY_Merge\\Result\\Final-drop-duplicates.csv')

  • 原始文件:

  • 合并后的文件:

  • 删除了重复值后的文件:

相关文章

网友评论

      本文标题:Python-137 合并多个Excel文件并根据几个列,删除重

      本文链接:https://www.haomeiwen.com/subject/syydlrtx.html