2017-06-28 4 views
0

私は以下に私のシナリオに合うようにしようとしていた - しかし、私は、次の列を持つoutput.csvファイルを持っているのpython 3削除行

Pandas - Python, deleting rows based on Date column

失敗

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

は、理想的には私が最初の7 Dをドロップする必要があるファイルは、過去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月6日に1月1日からレコードを削除し、そう

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 
+0

_complete_エラーメッセージを含めてください。 – DyZ

+0

あなたのコードでは、列は行ではないと言いますか? – dartdog

+0

以下のようなエラー ファイル "C:¥ProgramData¥Anaconda3¥lib¥site-packages¥spyder¥utils¥site¥sitecustomize.py" 866行目runfile execfile(ファイル名、ネームスペース) ファイル "C: (コンパイル(f.read()、ファイル名、 'exec')、ネームスペース) ファイル "ProgramData \ Anaconda3 \ lib \ site-packages \ spyder \ utils \ site \ sitecustomize.py"、行102、execfile exec 10行目の df = df [(parser.parse(df ['FirstOccurrence'])

答えて

0

にこの置き換える必要がありますと df=df[(parser.parse(df['FirstOccurrence']) < SevenDays)].drop(df.columns)

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

この希望を試してください。これはあなたを助けます。

+0

DF = df.drop(DFの[([ 'FirstOccurrence'] DF parser.parse()

関連する問題