簡體   English   中英

python 3根據日期列(字符串格式)從csv中刪除行

[英]python 3 Delete row from csv based on Date Column (string format)

我試圖將我的情況與以下內容匹配-但失敗了

熊貓-Python,根據“日期”列刪除行

我有一個帶有以下列的output.csv文件

Customer, Alertkey, Node, Alertgroup, FirstOccurrence,
TKT_Flag, X733SpecificProb, TKT_TicketNumber, TKT_Keyword

文件將每7天從數據庫中更新一次,最后7天為數據更新

因此,理想情況下,我必須刪除文件本身的前7天數據。

我可以在下面寫下,但是得到類型錯誤“ TypeError:字符串索引必須是整數”

import pandas as pd
from dateutil.relativedelta import relativedelta
from dateutil import parser


df=pd.read_csv('output.csv', usecols=['FirstOccurrence'],parse_dates=[0])
df=df['FirstOccurrence'].iloc[0]
dt = parser.parse(df)
SevenDays = dt + relativedelta( days = +7 )
df=df[(parser.parse(df['FirstOccurrence']) < SevenDays)].drop(df.columns)

將有數百萬行。 我要復制2016年1月1日開始的前幾行。但是,它將復制自2016年1月1日至今。 它將每周追加並刪除前7天的記錄-即第一次應刪除1月1日至1月6日的記錄,依此類推

Customer,Alertkey,Node,Alertgroup,FirstOccurrence,TKT_Flag,X733SpecificProb,TKT_TicketNumber,TKT_Keyword
Cust1,Cust1_11_53_Services_Warning,Node_Cust1,ITM_K53_SERVICEMON,2016-01-01 00:12:59,1005,TOLPUKC_OS:25223174,INC000014799786,CGMIDDLEWARE_MEDIUM_CONNECTDIRECT
Cust1,Cust1_11_53_Services_Warning,Node1_Cust1,ITM_K53_SERVICEMON,2016-01-01 00:12:59,1005,TOLPUKC_OS:25223175,INC000014799785,CGMIDDLEWARE_MEDIUM_CONNECTDIRECT
Cust2,Cust2_21_NT_System_CPU_Critical,Cust2_Node8,ITM_NT_System,2016-01-01 00:15:48,101,PARPFRC_OS:21192843,INC000000628410,WINDOWS_MEDIUM_DEFPRODUCTSILVER
Cust3,Cust3_10352_LZ_TDW_DISK_Critica,Cust3_Node22,ITM_Linux_Disk,2016-01-01 00:17:05,200,TOLPUKC_OS:25223370,INC000001412280,CGMOM_HIGH_DEFPRODUCT
Cust6,Cust6_11_53_Services_Warning,Cust6_Node700,ITM_K53_SERVICEMON,2016-01-01 00:22:36,22,TOLPUKC_OS:25223601,INC000002250120,CGIOWINTELIMOC_MEDIUM_DEFPRODUCT

替換為: df=df[(parser.parse(df['FirstOccurrence']) < SevenDays)].drop(df.columns)

其中: df = df.drop(df[(parser.parse(df['FirstOccurrence']) < SevenDays)].index, inplace=True)

嘗試這個希望對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM