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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1287閲覧

pandas idsample という userIdのみ抽出し、且つ時間を降順で表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

1グッド

0クリップ

投稿2019/08/22 13:22

編集2019/08/22 13:54

#やりたいこと
idsample という userIdのみ抽出し
time02 の中の時間を降順で表示したいです。

#できないこと time02が日付時間降順にならない
userIdは正しく抽出されました。しかしtime02が正しく降順にされません。
具体的にはtime02をご覧ください。8月7日はきれいに降順になっているようにみえるのですが下から5行は
8月13日
8月22日
8月1日
8月11日
8月17日
と降順ではなく曜日の頭文字順にTTTSSと並んでしまいます。time01はややこしいので消してます。
これはtime02のデータ型がオブジェクト型である事が問題ではないのかなと皆さんのお力添えでわかりました。

userId2time01time02567
idsample-Wed Aug 07 2019 16:38:47 GMT+0900 (JST)
idsample-Wed Aug 07 2019 16:38:21 GMT+0900 (JST)
idsample-Tue Aug 13 2019 20:58:05 GMT+0900 (JST)
idsample-Thu Aug 22 2019 21:21:51 GMT+0900 (JST)
idsample-Thu Aug 01 2019 00:35:57 GMT+0900 (JST)
idsample-Sun Aug 11 2019 13:51:33 GMT+0900 (JST)
idsample-Sat Aug 17 2019 12:43:54 GMT+0900 (JST)

#今回実現したい降順

userId2time01time02567
idsample-Thu Aug 22 2019 21:21:51 GMT+0900 (JST)
idsample-Sat Aug 17 2019 12:43:54 GMT+0900 (JST)
idsample-Tue Aug 13 2019 20:58:05 GMT+0900 (JST)
idsample-Sun Aug 11 2019 13:51:33 GMT+0900 (JST)
idsample-Wed Aug 07 2019 16:38:47 GMT+0900 (JST)
idsample-Wed Aug 07 2019 16:38:21 GMT+0900 (JST)
idsample-Thu Aug 01 2019 00:35:57 GMT+0900 (JST)

そこで以下を実施しました。

#ためしたこと

データ取得方法は以下になります。

# -*- coding: utf-8 -*- import pandas as pd # CSVの最初の行ヘッダーを定義 csvheader = ["userId", "2", "time01", "time02", "5", "6", "7"] # 最新の全データCSV ファイルをgoogle drive urlから読み込む csv_imported = pd.read_csv("https://hoge.com", names=csvheader)

データ型を確認  全てオブジェクト型でした

print(csv_imported.dtypes)

そのためpd.to_datetimeでtime02をデータ型変換しました。datetime64[ns, pytz.FixedOffset(-540)]

csv_imported['time02'] = pd.to_datetime(csv_imported['time02'])

そしてユーザがidsampleのみ抽出し、time02で降順をしました。

csv_imported = csv_imported[csv_imported['userId'] == 'idsample'].sort_values('time02', ascending=False)

すると以下エラーが出ている状況です。

Exception Type: ValueError Exception Value: ('Unknown string format:', 'time02')

宜しくお願いいたします。

>前回の質問ページへのリンク
https://teratail.com/questions/207651

bochan2👍を押しています

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

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

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

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

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

can110

2019/08/22 13:32

前回の質問ページへのリンクも記載してください。 また前回の質問では「2019/8/1 0:39」といったデータが入っていた「time3」列がありましたが この列は利用できないということでしょうか?
退会済みユーザー

退会済みユーザー

2019/08/22 13:36

>前回の質問ページへのリンク https://teratail.com/questions/207651 >「time3」列がありましたがこの列は利用できないということでしょうか? できればtime02を使用して頂きたいです。
can110

2019/08/22 13:41

テストデータを回答者側が用意するのはしんどいので csv_imported = pd.DataFrame({'time02':['Thu Aug 22 2019 21:21:51 GMT+0900 (JST)','~'] といったカタチで提示ください。
guest

回答1

0

ベストアンサー

datetime関数で自動的に変換できないフォーマットだと思われますので
フォーマットを指定してみたらどうでしょうか。
https://deepage.net/features/pandas-to-datetime.html

投稿2019/08/22 13:55

pea

総合スコア419

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

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

退会済みユーザー

退会済みユーザー

2019/08/22 14:24

ありがとうございます。前回より大変参考になるURLでしたのでベストアンサーとします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問