文件去重
excel 文件:
# 导入pandas包并重命名为pd
import pandas as pd
# 读取Excel中Sheet1中的数据
data = pd.DataFrame(pd.read_excel('test.xlsx', 'Sheet1'))
# 查看读取数据内容
print(data)
# 查看是否有重复行
re_row = data.duplicated()
print(re_row)
# 查看去除重复行的数据
no_re_row = data.drop_duplicates()
print(no_re_row)
# 查看基于[物品]列去除重复行的数据
wp = data.drop_duplicates(['物品'])
print(wp)
# 将去除重复行的数据输出到excel表中
no_re_row.to_excel("过滤重复行.xlsx")
txt 去重:
import pandas as pd
# 读取txt
train_data = pd.read_csv('/home/geoffrey/桌面/train.txt.backup',
sep=' ',
encoding='utf-8',
# index_col=0,
header=None)
# 删除特定行(包含‘打伞’的行)
train_data[train_data[0].apply(lambda x: '打伞' not in x)]
# 去重
train_data.drop_duplicates(inplace=True)
train_data.set_index(0, inplace=True)
# 写入txt
train_data.to_csv('/home/geoffrey/桌面/test1.txt',
sep=' ',
encoding='utf-8',
header=None)
excel 文件合并:
import os
import pandas as pd
df = pd.DataFrame(columns=['流水号','事件名称','本方户名','对方户名','流水时间','操作员','交易额','流水标志','扇区号'])
l = []
num = []
def search(path):
parents = os.listdir(path)
sum = 0
for parent in parents: # 返回指定路径下所有文件和文件夹的名字,并存放于一个列表中
child = os.path.join(path,parent)
if os.path.isdir(child): # 将多个路径组合后返回
search(child)
elif os.path.isfile(child): # 如果是目录,则继续遍历子目录的文件
if os.path.splitext(child)[1] == '.xls': # 分割文件名和文件扩展名,并且扩展名为'xls'
d = pd.read_excel(child)
for i in range(len(d)):
num.append(os.path.split(child)[1][0:9])
l.append(d)
#search(r'C:\\Users\aming\\Desktop\\大学生行为分析\\后勤数据\\学生数据_LHJ_YJ')
search(r'C:\\Users\aming\\Desktop\\大学生行为分析\\后勤数据\\学生数据_LHJ_YJ\1250111\2012-8-1_2014-7-15')
df = pd.concat(l)
da = pd.Series(num)
df['学号'] = da
df = df.drop(columns=['流水号','扇区号','流水号','操作员','流水标志'],axis=1) #删除整列全为NAN的列
df.to_excel('rone.xlsx',index=False) # 保存为result文件