質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

2320閲覧

pythonで日付の生データを前処理したいです。

Songzhi_George

総合スコア1

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2020/08/07 01:56

Jupyter notebookでの実行で、環境はMacです。### 前提・実現したいこと

コード

ここに質問の内容を詳しく書いてください。
(例)PythonでCSVファイルから、取り込んだデータを分析するための前処理として、試行錯誤していますが、なかなか、できません。データ分析の8割の時間が前処理に使われるとは聞いていましたが、本当ですね。
各値を19-1-1と言うものから、2019-01-01もしくはリストとして、(2019, 01, 01)と言うようにして、分析しやすい形にしたいのです。

■■な機能を実装中に以下のエラーメッセージが発生しました。
<コードです>

発生している問題・エラーメッセージ


ValueError: time data 19-1-1 doesn't match format specified

KeyError: '治療日'

エラーメッセージ

該当のソースコード


df_3['日付'] = pd.to_datetime(customer_data2019_0_1_1_df['治療日'],format='%Y-%m-%d')
df_3


customer_data2019_5 = pd.DataFrame(customer_data2019_0_1_df_2.dropna())
df_4['日付'] = pd.to_datetime(customer_data2019_5['治療日'],format='%Y-%m-%d')
df_4

ソースコードpython

試したこと

3日グーグルで、以下の検索を試みなんのもここに書ききれないほど調べました。サイトも20個は見て見たのですが、おそらく、リストやデータフレイムとシリーズなどの形式や型などの基本的な知識がおぼつかないと言う、自分自身の問題が一番なのかもしれません。

関数を打ち込めば、なんとかなって来たチュートリアルが終わったばかりの自分としては、かなり精神的に疲れてしまいましたが、話に聞いていた、通り、壁からなかなか抜け出せないで困っています。

よろしければ何卒、お力のほどお貸しいただければ幸いです。

Python リスト 分割 - Google Search
python ある文字で区切る リスト内
19-1-1 変換
python 汚い 日付
19-1-1 2019-01-01 変換
python ある文字で区切る
Python 日付、時刻の処理

本でも、前処理大全、と言う本を購入して、この生のデータを触る前に読みました。この本はSQL、Rとpythonによる前処理の方法として、いろんな方法があったのです。そこで、本の中に書いてあった、コードを打ってもやはり同じエラー文が出たりして、途方に暮れています。

補足情報(FW/ツールのバージョンなど)

Macを使っています。pythonのバージョンはほぼ最新なはずです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

恐らく悩んでる理由の一つはこれですね。

python

1df_3['日付'] = pd.to_datetime(customer_data2019_0_1_1_df['治療日'],format='%y-%m-%d')

年が二桁の場合のフォーマットは大文字の%Yではなく小文字の%yを指定します。

追記
\u3000は全角スペースですね。
取込のやり方に問題がある可能性もありますが、
とりあえず置換で除去する方法です。

python

1#全角スペース除去 2customer_data2019_0_1_1_df['治療日'] = customer_data2019_0_1_1_df['治療日'].replace('\u3000','', regex=True) 3 4df_3 = pd.DataFrame() 5df_3['日付'] = pd.to_datetime(customer_data2019_0_1_1_df['治療日'],format='%y-%m-%d') 6df_3

投稿2020/08/07 02:13

編集2020/08/07 03:22
yureighost

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Songzhi_George

2020/08/07 03:01 編集

こんなにも早いメッセージありがとうございます。 変な名前が多くて見辛くて申し訳ありません。 変えて試して見たところ df_3['日付'] = pd.to_datetime(customer_data2019_0_1_1_df.dropna()['治療日'],format='%y-%m-%d') df_3 ValueError: time data '\u3000\u3000\u3000\u3000\u3000\u3000\u3000' does not match format '%y-%m-%d' (match) 何か変な値が入っていたようなので、もう一度念のため、欠損ちとその値をのぞいて見たところ、また何か、変な値が入っている?みたいで、空白でもないと思うのですが、これは何をいっているのでしょうか? df_6 = customer_data2019_0_1_1_df.dropna() df_6['治療日'] = df_6['治療日'].str.rstrip('\u3000\u3000\u3000\u3000\u3000\u3000\u3000') df_7['日付'] = pd.to_datetime(df_6['治療日'],format='%y-%m-%d') df_7 ValueError: time data '' does not match format '%y-%m-%d' (match)
Songzhi_George

2020/08/07 06:24

追記 またもや、お返事ありがとうございます。 コードを試して見たところ、同じようなエラーが返ってきて、他の方に教えてもらった、.unique()を使って、中身を見て見たところ、確かに''これがあったので、なんとかして、これを決して、また実行して見たいと思います。 また、取り込み方から、また見返して見たいと思います。ありがとうございます。!
guest

0

結果ファイルを取り込むときの全角スペースをCSVの方で消去して、再び追記で書いていただいた、コードを打ったら解決できました!!!

素早い返信で、このような本当に初心者の悩みに答えていただき本当に感激しました。大変感謝申し上げます。

投稿2020/08/07 06:38

Songzhi_George

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問