Тёмный

【Pythonプログラミング】Pandasの基本 (後編) 〜 表形式データ・データ分析 〜 初心者向けのDataFrameの操作入門! 

Pythonプログラミング VTuber サプー
Подписаться 95 тыс.
Просмотров 43 тыс.
50% 1

Опубликовано:

 

27 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 45   
@axljoe2000
@axljoe2000 3 года назад
動画内の解説がイメージ付でcheetsheetよりも分かり易いだけでなく解説例の選定が秀逸
@pythonvtuber9917
@pythonvtuber9917 3 года назад
コメントありがとうございます😊 mergeやgroupbyは便利ですが、動きを理解するのが難しいかな...と思って図解を多めに作ってみました!!
@spoon5110
@spoon5110 2 года назад
とても分かりやすいです! 何か操作をした後に、displayで結果を見せてくれるので、確実に理解できた気がしました。 行の色分けとかも、めっちゃ分かり易かったです!!
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご視聴いただきありがとうございます😊 行の色分けや実演の見せ方など、色々工夫しながら動画を作ったので、そう言ってもらえて嬉しいです!!
@yashige-sp8gw
@yashige-sp8gw 2 года назад
すごくわかりやすい動画でした。例も身近なものだったので良かったです。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご視聴いただきありがとうございます! 長い動画ですが少しでもPandasの理解のお役に立てていたら嬉しいです😊
@淀川謙次
@淀川謙次 Год назад
丁寧な説明ありがとうございます。 ただ次のコードは動作するのですが、 result = df.groupby('担当者').mean() display(result) 次のアラートがでてしまいます。 FutureWarning: The default value of numeric_only in DataFrameGroupBy.mean is deprecated. In a future version, numeric_only will default to False. Either specify numeric_only or select only columns which should be valid for the function. result = df.groupby('担当者').mean() 次のようにするとアラートがでなくなるようです。 result = df.groupby('担当者').mean('売上')
@ipg4140
@ipg4140 2 года назад
Python初心者ですが、私にはスクールの動画より分かりやすかったです。 動画作成大変かと思いますが、楽しく拝聴させて頂きます。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
Pandasの動画は前編・後編と、長尺動画で見るのが大変だったかと思いますが、そう言ってくださって嬉しい限りです😊 更新頻度があまり高くないチャンネルなんですが、楽しんでもらえたらと思います!
@Mayu.Learning
@Mayu.Learning 3 месяца назад
聞き心地良くて分かりやすい動画のおかげで、ゼロから色々なことができるようになりました! 例えば、cvsデータを日付ごとにgroupbyでまとめたdfをエクセルに出力して活用しています。 グループごとに空白行で仕切ってイイ感じなんですが、インデックスを各グループごとに振り直す方法に苦戦しています。 調べて色々試すんですがうまく行かず…そもそもインデックスを操作しようとする観点が間違っているのでしょうか?
@pythonvtuber9917
@pythonvtuber9917 3 месяца назад
ご視聴いただきありがとうございます! インデックスを振り直すというのはよくあるので、観点としては間違ってないです。for文を使えば出来そうですが、あまりスマートには書けなさそうですね🤔1つのグループに対して1つのdfを作った方が扱いやすいようにも感じますがどうでしょうか?(集計するときだけconcatするなど)
@mi-vs7yw
@mi-vs7yw 2 года назад
動画、とってもわかりやすかったです! 動画内で使用しているデータファイルはどこかに公開されていますか? 他の方のコメントにあったドライブはなくなっているようなので
@pythonvtuber9917
@pythonvtuber9917 2 года назад
データファイルなのですがトラブルがありまして現在は非公開とさせていただいております。申し訳ないです...😵
@morimochi
@morimochi 2 года назад
質問失礼します。 クラス ポイント 1A   5 1A   1 2A   1 3A   1 1A   1 3C   1 2B   1 1B   1 2A   2 3C   2 3A   2 このデータを import pandas as pd df=pd.read_excel('bel.xlsx') x = df.groupby("クラス").sum() というコードでクラスごとのポイント合計を出しました。 クラス ポイント 1A   12 1B   3 2A   55 2B   32 2C   2 3A   5 3B   2 3C   5 ポイントだけをリストに分けて[12,3,55...]とまとめるにはどうしたらいいでしょうか? ご回答よろしくお願いします。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご質問ありがとうございます! x['ポイント'].to_list()ってやったら良いのでは無いでしょうか?
@morimochi
@morimochi 2 года назад
@@pythonvtuber9917 とても早い対応ありがとうございます!! 出来ました!!ありがとうございます!!これからも頑張ってください!!
@lagavulin1968
@lagavulin1968 3 года назад
説明はとても分かりやすくて理解できました! 動画で使用しているデータを何処かに置いて頂けないでしょうか??  再現するのが大変というか手間がかかるので。(笑)
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご視聴いただき、ありがとうございます!! 動画の実演で使用したExcelファイルを以下のGoogle Driveにアップロードしました!ぜひ使ってPandasを試してみてください😊 drive.google.com/drive/folders/1uyEmJ0-bEVcJAJAloXL7cQTFpiLDg1nM?usp=sharing
@lagavulin1968
@lagavulin1968 3 года назад
@@pythonvtuber9917 ありがとうございます!!!
@kawayamato2096
@kawayamato2096 2 года назад
どのサイトよりも公式よりもPandasの解説を分かりやすく発信していただきありがとうございます。 Pythonを勉強しながらコードを書いているところですが、 イメージした動きをどう書いたらいいか分からなくなってしまいました。 何かヒントになることやサイトを教えていただけませんでしょうか? やりたいことは 1.〇月のエクセルで作った勤務表を取得 2.各個人の連続する期間「14日間の内2日間(1日~14日、2日~15日等)」を抽出 3.休みの個数を数えて2個未満の期間を判定 4.判定した結果True、Falseだった期間を新しいエクセルファイルにチェックシートとして作成 ■現状 1はできたんですが、2から試行錯誤していてどう書けばいいか詰まっています。 イメージしているのは ①空のディクショナリーを作る ②pandasで取得したデータフレームdfから各個人毎for文を使い {日付をkey:勤務か休み}ディクショナリーに格納。 人数分のディクショナリーができる ③keyを1:14のように期間を指定する関数を作りif文でvalueを判定 これをfor文で期間を1日づつずらし,2:15,3:16のようにする ④新しい名前でエクセルファイルを作り保存 このような流れでコードを書けたらと思っています。 現状はここまで書きました。 命名規則に則っていないと思いますが今は勘弁してください。 import pandas as pd df = pd.read_excel("○○.xlsx") for index, data in df.iterrows(): kinmu = str(data) print(type(kinmu)) print(index) print(kinmu) #この次の行に指定した範囲を入れるディクショナリーをつくる? #ここに書く yasumi = kinmu.count("休") print(yasumi) if yasumi < 2: print("ダメ") elif yasumi > 2: print("OK") print('---------') 日付、名前、勤務が各人毎出てきて とりあえず全員分抜き出して1か月分の休みはカウントしました ②の各個人毎に辞書に格納するのと、 ③の期間を指定して判定していく処理が分かりません ヒントをいただけたら幸いです。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
すみません、ご質問の内容がよく理解できず...できればinputファイルとoutputファイルのイメージがあると分かりやすいかと思います。
@kawayamato2096
@kawayamato2096 2 года назад
こちらこそ分かりにくい質問をしてしまい大変申し訳ございません。 inputファイルとoutputファイルとは データフレームとして読み込むエクセルファイルがinputファイル 判定した結果がoutputファイルということでしょうか? それでしたらエクセルファイルはTwitterのDMで送ればよろしいでしょうか💦
@AK-us6px
@AK-us6px 2 года назад
googleスプレッドシートのQuery関数のように表の列の順序を入れ替えて、さらに列の数字を加工(例えば二倍するなど)したのち、別の表と合体する方法はPANDASではあるのでしょうか?
@pythonvtuber9917
@pythonvtuber9917 2 года назад
それぞれメソッドがありますね。 ・順序入れ替え → df.sort_values(by=['カラム名']) ・2倍 → df['num'] = df['num'] * 2 ・合体 → pd.merge か pd.concat などですね!
@AK-us6px
@AK-us6px 2 года назад
@@pythonvtuber9917 助かります。ありがとうございます!
@3rdvoyager248
@3rdvoyager248 Год назад
concatを使って、データフレームの行と行の間に新しく行を追加したいのですが、 どのようにすればよいですか?
@ぺーぱー-w2b
@ぺーぱー-w2b 2 года назад
いつもわかりやすいご説明ありがとうございます。 概要欄に記載いただいているURLを開けないのですが、 変更されましたでしょうか? 対処法があれば、教えていただきたいです。 初歩的な質問で、お手数おかけして申し訳ありません。。
@pythonvtuber9917
@pythonvtuber9917 2 года назад
使用したファイルですね、すみません。。。 こちらは以前に問題がありまして閉じさせていただきました😵 概要欄のリンクも削除しておきます。
@ぺーぱー-w2b
@ぺーぱー-w2b 2 года назад
お返事いただき、ありがとうございます。 承知しました!自分でexcelファイルなどを用意して、実装してみます! 今後も楽しくわかりやすい動画楽しみにしております!
@StdYossh
@StdYossh Год назад
15:12 mergeによる結合
@ledblack2474
@ledblack2474 3 года назад
lambda式、覚えました。 解説とjupyternote の実演で分かりやすいね。 ところで、jupyter note の背景(theme)を暖色or暗めにしてもらえると、ドライアイの私には目に優しいのですが。 解説が寒色系なので、jupyter noteは暖色系とか。
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご視聴いただき、ありがとうございます!! jupyter notebookのデフォルトテーマ、確かにちょっと白くて見にくかったですね😵 次にjupyter notebookを使うときは、ダークテーマに変更しますね!
@3rdvoyager248
@3rdvoyager248 Год назад
VS codeで、displayが認識されないのですね… データフレームを扱うにはjupyter notebookの方が向いているのですか?
@pythonvtuber9917
@pythonvtuber9917 Год назад
VSCodeですが、jupyter notebookを使うための拡張機能がありますね! marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
@業務用脱毛機シャルム4000W
文字を小さくする方法教えて下さい
@pythonvtuber9917
@pythonvtuber9917 2 года назад
DataFrameのフォントサイズですかね?私はやったことないですが以下のサイトのように IPython.core.display.HTMLを使用するのはいかがでしょうか? eigo.rumisunheart.com/2019/03/01/how-to-enlarge-font-size-of-pandas-dataframe/
@hidetoshitakizawa7528
@hidetoshitakizawa7528 2 года назад
mergeで結合した時にhow=leftで行っても右側のデータがすべてNumになってしまうのですが、原因がわかりません。なにか原因らしく部分があったら教えてください。strなどの文字や数字の部分が関わっていますか?
@pythonvtuber9917
@pythonvtuber9917 2 года назад
ご質問ありがとうございます😊 keyに指定したカラムで、左側のDataFrameと右側のDataFrameを結合できない場合はNanになります!keyの型も一致している必要があるので、左側のDataFrameの型も含めて完全に同じものが右側のDataFrameに存在するのか確認してみてください😉
@まんぷくたろう-p8l
@まんぷくたろう-p8l 3 года назад
こんばんは indexの変更の所で0~8を001~009に振り直す所ででてきた、str(x).zfillの所が理解できないのですが、zfii関数はstring型のものを変形できる関数なのでしょうか。すみません勉強不足です。。
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご質問ありがとうございます!! すみません... zfillの説明が不足していましたね😵 zfillは文字列をゼロ埋めをする関数で、「便利な文字列メソッド」という動画で解説しています!この動画の7:18あたりから解説しているので、ぜひ、合わせて見てみてください😉 便利な文字列メソッド動画 ▶︎ ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-TjXuKz24gio.html 例 ) x.zfill(5) → 文字列 x を5桁になるように0埋め
@まんぷくたろう-p8l
@まんぷくたろう-p8l 3 года назад
便利な文字列メソッドという動画があるのですね!!それは必見そう。 後で見てみます!ありがとうございました✨
@TaroHiro
@TaroHiro 3 года назад
冒頭のgroupbyにつきまして 佐藤と斎藤の売上合計(sum)を集計するにはどうしたらよろしいでしょうか? カラムを指定するのではなく、個別の佐藤、斎藤を指定したいです。
@pythonvtuber9917
@pythonvtuber9917 3 года назад
ご質問ありがとうございます😊 質問がちょっと理解しきれていないのですが、 佐藤さんの売り上げ合計 ▶︎ df[df['担当者'] == '佐藤']['売り上げ'].sum() 佐藤さんと斎藤さんの2人の売り上げ合計の場合は ▶︎ df[df['担当者'].isin(['佐藤', '斎藤'])]['売り上げ'].sum() です! 答えになっていますかね...🤔
@TaroHiro
@TaroHiro 3 года назад
完璧なご回答でした。サプーさん何でもできちゃうんですね。 いつも早速のご返信感謝しております。
@9211-l2g
@9211-l2g 10 месяцев назад
こんにちは! めちゃくちゃ勉強になっています!ありがとうございます! df.groupby('曜日').mean() これだとどうしても動かなくて、下記だと動きました df.groupby('曜日')['売上'].mean()
Далее
[Introduction to Pandas] Tabular data and data analysis
28:14