# -*- coding: utf-8 -*-
import pandas as pd
import os
from tqdm import *
class deleterepetition:
def __init__(self, finished_filedir='newdata'):
'''初始化資料清洗後的csv檔案儲存位址
:param finished_filedir: 儲存路徑
'''self.finished_filedir = finished_filedir
def deletecsvrepetition(self, filename):
'''將單個csv檔案以id,時間,訊息為主鍵,去除同天同的人發的相同的話
:param filename:檔名
:return:null
'''# 讀取csv檔案
try:
csvfile = pd.read_csv(filename, encoding="utf-8")
# print(csvfile)
except exception:
raise exception('file is not found!')
# 第一行沒有資料,去除
csvfile = csvfile[1:]
# print(csvfile)
# 複製乙份時間用於還原
time = csvfile['時間'].copy()
# print(time)
# print(time.str.split(' ', expand=true)[0])
# 按照天為單位,提取時間
csvfile['時間'] = csvfile['時間'].str.split(' ', expand=true)[0]
# print(csvfile['時間'])
# 去除同天同人同訊息的資料
csvfile.drop_duplicates(subset=['id', '時間', '訊息'], keep='first', inplace=true)
# 恢復時間格式
csvfile['時間'] = time
# print(csvfile)
# 寫入csv檔案
csvfile.to_csv(self.finished_filedir + '/' + filename, index=0)
def deletecsvsrepetition(self, filedir):
'''將根目錄下的所有檔案進行去重處理
:param filedir: 資料夾名
'''# 讀取根目錄下所有的csv檔名
filenames_csv = os.listdir(filedir)
for filename in tqdm(filenames_csv):
self.deletecsvrepetition(filedir + '/' + filename)
if __name__ == '__main__':
test = deleterepetition()
test.deletecsvsrepetition('20190311_0408')
pandas相同資料的優先順序
import pandas as pd import numpy as np df1 pd.dataframe df2 pd.dataframe 這個操作會把df1中有的資料作為最高的優先順序,df2中的資料優先順序會低一點,如果df1 np.nan會用df2中的資料 df1.combine fir...
pandas統計csv中相同資料出現次數
在處理csv資料的過程中可能會遇到統計重複資料的情況,筆者以自己遇到的問題為例,給出乙個可以解決此問題的方法。進行操作的csv檔案中含有1700多條資料,其中區域性如下圖所示 目的是計算其中每條資料出現的次數,如下 import pandas as pd csv pd.read csv data a...
pandas小筆記 去除資料中的NaN值
pandas 會為缺少的值分配 nan 值。我們可以選擇對這些nan值對應的行列進行刪除,也可以選擇填充。data.dropna how all 傳入這個引數後將只丟棄全為缺失值的那些行 data.dropna axis 1 丟棄有缺失值的列 data.dropna axis 1,how all 丟...