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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

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

pandas

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

Q&A

解決済

1回答

823閲覧

Pandasのgroupby関数で取得した格列のカラム部分を取得する方法はありますでしょうか??

amaturePy

総合スコア131

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2021/05/29 03:44

Pandasの以下のコードで取得したデータフレームの各カラム部分を取得することは可能でしょうか??
やりたいこととしては、このfor文の中でカラム部分を変数に格納し、空のリストのtimestampにappendして行きたいです。
データフレームに関して知識不足な所もあるので、何か用語など不可解な部分がありましたら申し訳ございません。

timestamp = [] for c in push_date_df.columns: push_num = push_date_df.groupby(c)[c].count() print(push_num)
上記のprint部分出力 push1_date←この部分をfor文の中で取得して変数に格納したいです。 2021-04-29 4 2021-04-30 1 2021-05-01 2 2021-05-02 1 2021-05-03 4 Name: push1_date, dtype: int64 push2_date←この部分をfor文の中で取得して変数に格納したいです。 2021-05-12 8 2021-05-13 1 2021-05-14 2 2021-05-15 8 Name: push2_date, dtype: int64 push3_date←この部分をfor文の中で取得して変数に格納したいです。 2021-05-17 7 2021-05-18 1

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

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

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

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

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

bsdfan

2021/05/29 06:49 編集

cに入っている値がそれだと思うのですが、やりたいことは違いますか? ← 読み直してわかりました。 「この部分」というのが、push1_dateというカラム名をさしているのではなくて、その中身だったんですね。
amaturePy

2021/05/29 08:39

いえいえ!前回の処理とは別の物になります。 前回頂いたお答えでその際の問題点は解決させて頂きました! ありがとうございました!
guest

回答1

0

ベストアンサー

以下のようにindexを取得してループ処理できます。
ただ、drop_duplicatesで重複を除くだけでもよいように思います。

Python

1import pandas as pd 2from io import StringIO 3 4s = """ 5push1_date,push2_date 62021-04-29,2021-05-12 72021-04-30,2021-05-13 82021-04-29,2021-05-12 92021-04-30,2021-05-13""" 10df = pd.read_csv(StringIO(s),parse_dates=[0,1]) 11 12ts = [] 13for c in df.columns: 14 sr = df.groupby(c)[c].count() 15 for dt in sr.index: 16 ts.append(dt) 17 18print(ts) # [Timestamp('2021-04-29 00:00:00'), Timestamp('2021-04-30 00:00:00'), Timestamp('2021-05-12 00:00:00'), Timestamp('2021-05-13 00:00:00')] 19 20ts = [] 21for c in df.columns: 22 ts += df[c].drop_duplicates('first').tolist() 23print(ts) # [Timestamp('2021-04-29 00:00:00'), Timestamp('2021-04-30 00:00:00'), Timestamp('2021-05-12 00:00:00'), Timestamp('2021-05-13 00:00:00')]

投稿2021/05/29 04:05

can110

総合スコア38278

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

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

amaturePy

2021/05/29 08:37

ありがとうございます。なるほど。.indexで取得できたのですね。無事実装できました。pandasのAPIドキュメントを再度読んでみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問