2017-11-27 6 views
0

私はいくつかのプロジェクトを作り、多くのチャンネルから注文をソートしています。dandypeを持たないdateformによるpandasデータフレームフィルタ

問題は、お客様のニーズに応じて発送日のメモを追加する必要があります。

日付はGoogleのスプレッドシートとその日付形式で私に入れられます。

私はgspread_pandasモジュールを使用しています。

import gspread_pandas import Spread 
s = Spread('myid', 'sheetname') 
s.sheets 
temp_df = s.sheet_to_df(index=False, headers=1, start_row=2, sheet='data') 

temp_dfは以下の通りである。

name item quantity dispatch_due 
0 james shoes 1   2017-11-27 
1 john shirts 1   2017-11-28 
2 jack pants 2   please add dispatch_due 
3 lambo gun  3   2017-11-143 

私だけdispatch_dueで濾過dataframeは、日付の右の形で満たされているようにしたいです。 lambo(index3)の場合は、「dispatch_dueを追加してください」に戻してください。

print(temp_df.dtypes) 

問題は、私は上記のように行うならば、私が対処することができます何DTYPEありません、です。すべての列が「オブジェクト」です。

どうすればいいですか?

答えて

1

pd.to_datetimeerrors='coerce'を使用して、不良データを特定して修正してください。

pd.to_datetime(df.dispatch_due, errors='coerce')\ 
    .fillna('please add dispatch_due') 

0  2017-11-27 00:00:00 
1  2017-11-28 00:00:00 
2 please add dispatch_due 
3 please add dispatch_due 
Name: dispatch_due, dtype: object 

あなたは、末尾のタイムスタンプをしたくない場合は、NaN Sを充填する前にstrftimeに日付を変換することができます。

pd.to_datetime(df.dispatch_due, errors='coerce')\ 
     .dt.strftime('%y-%m-%d').replace('NaT', 'please add dispatch_due') 

0     17-11-27 
1     17-11-28 
2 please add dispatch_due 
3 please add dispatch_due 
Name: dispatch_due, dtype: object 
関連する問題