pandas去除某幾列相同資料的記錄並儲存

2021-09-17 03:49:09 字數 1627 閱讀 7851

# -*- 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 丟...