丁寧な説明ありがとうございます。 ただ次のコードは動作するのですが、 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('売上')
動画内の解説がイメージ付でcheetsheetよりも分かり易いだけでなく解説例の選定が秀逸
コメントありがとうございます😊 mergeやgroupbyは便利ですが、動きを理解するのが難しいかな...と思って図解を多めに作ってみました!!
丁寧な説明ありがとうございます。
ただ次のコードは動作するのですが、
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('売上')
とても分かりやすいです!
何か操作をした後に、displayで結果を見せてくれるので、確実に理解できた気がしました。
行の色分けとかも、めっちゃ分かり易かったです!!
ご視聴いただきありがとうございます😊
行の色分けや実演の見せ方など、色々工夫しながら動画を作ったので、そう言ってもらえて嬉しいです!!
すごくわかりやすい動画でした。例も身近なものだったので良かったです。
ご視聴いただきありがとうございます!
長い動画ですが少しでもPandasの理解のお役に立てていたら嬉しいです😊
Python初心者ですが、私にはスクールの動画より分かりやすかったです。
動画作成大変かと思いますが、楽しく拝聴させて頂きます。
Pandasの動画は前編・後編と、長尺動画で見るのが大変だったかと思いますが、そう言ってくださって嬉しい限りです😊
更新頻度があまり高くないチャンネルなんですが、楽しんでもらえたらと思います!
15:12 mergeによる結合
聞き心地良くて分かりやすい動画のおかげで、ゼロから色々なことができるようになりました!
例えば、cvsデータを日付ごとにgroupbyでまとめたdfをエクセルに出力して活用しています。
グループごとに空白行で仕切ってイイ感じなんですが、インデックスを各グループごとに振り直す方法に苦戦しています。
調べて色々試すんですがうまく行かず…そもそもインデックスを操作しようとする観点が間違っているのでしょうか?
ご視聴いただきありがとうございます!
インデックスを振り直すというのはよくあるので、観点としては間違ってないです。for文を使えば出来そうですが、あまりスマートには書けなさそうですね🤔1つのグループに対して1つのdfを作った方が扱いやすいようにも感じますがどうでしょうか?(集計するときだけconcatするなど)
質問失礼します。
クラス ポイント
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...]とまとめるにはどうしたらいいでしょうか?
ご回答よろしくお願いします。
ご質問ありがとうございます!
x['ポイント'].to_list()ってやったら良いのでは無いでしょうか?
@@pythonvtuber9917 とても早い対応ありがとうございます!!
出来ました!!ありがとうございます!!これからも頑張ってください!!
動画、とってもわかりやすかったです!
動画内で使用しているデータファイルはどこかに公開されていますか?
他の方のコメントにあったドライブはなくなっているようなので
データファイルなのですがトラブルがありまして現在は非公開とさせていただいております。申し訳ないです...😵
concatを使って、データフレームの行と行の間に新しく行を追加したいのですが、
どのようにすればよいですか?
googleスプレッドシートのQuery関数のように表の列の順序を入れ替えて、さらに列の数字を加工(例えば二倍するなど)したのち、別の表と合体する方法はPANDASではあるのでしょうか?
それぞれメソッドがありますね。
・順序入れ替え → df.sort_values(by=['カラム名'])
・2倍 → df['num'] = df['num'] * 2
・合体 → pd.merge か pd.concat
などですね!
@@pythonvtuber9917 助かります。ありがとうございます!
文字を小さくする方法教えて下さい
DataFrameのフォントサイズですかね?私はやったことないですが以下のサイトのように IPython.core.display.HTMLを使用するのはいかがでしょうか?
eigo.rumisunheart.com/2019/03/01/how-to-enlarge-font-size-of-pandas-dataframe/
説明はとても分かりやすくて理解できました!
動画で使用しているデータを何処かに置いて頂けないでしょうか??
再現するのが大変というか手間がかかるので。(笑)
ご視聴いただき、ありがとうございます!!
動画の実演で使用したExcelファイルを以下のGoogle Driveにアップロードしました!ぜひ使ってPandasを試してみてください😊
drive.google.com/drive/folders/1uyEmJ0-bEVcJAJAloXL7cQTFpiLDg1nM?usp=sharing
@@pythonvtuber9917
ありがとうございます!!!
どのサイトよりも公式よりも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か月分の休みはカウントしました
②の各個人毎に辞書に格納するのと、
③の期間を指定して判定していく処理が分かりません
ヒントをいただけたら幸いです。
すみません、ご質問の内容がよく理解できず...できればinputファイルとoutputファイルのイメージがあると分かりやすいかと思います。
こちらこそ分かりにくい質問をしてしまい大変申し訳ございません。
inputファイルとoutputファイルとは
データフレームとして読み込むエクセルファイルがinputファイル
判定した結果がoutputファイルということでしょうか?
それでしたらエクセルファイルはTwitterのDMで送ればよろしいでしょうか💦
VS codeで、displayが認識されないのですね…
データフレームを扱うにはjupyter notebookの方が向いているのですか?
VSCodeですが、jupyter notebookを使うための拡張機能がありますね!
marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
いつもわかりやすいご説明ありがとうございます。
概要欄に記載いただいているURLを開けないのですが、
変更されましたでしょうか?
対処法があれば、教えていただきたいです。
初歩的な質問で、お手数おかけして申し訳ありません。。
使用したファイルですね、すみません。。。
こちらは以前に問題がありまして閉じさせていただきました😵
概要欄のリンクも削除しておきます。
お返事いただき、ありがとうございます。
承知しました!自分でexcelファイルなどを用意して、実装してみます!
今後も楽しくわかりやすい動画楽しみにしております!
lambda式、覚えました。
解説とjupyternote の実演で分かりやすいね。
ところで、jupyter note の背景(theme)を暖色or暗めにしてもらえると、ドライアイの私には目に優しいのですが。
解説が寒色系なので、jupyter noteは暖色系とか。
ご視聴いただき、ありがとうございます!!
jupyter notebookのデフォルトテーマ、確かにちょっと白くて見にくかったですね😵
次にjupyter notebookを使うときは、ダークテーマに変更しますね!
mergeで結合した時にhow=leftで行っても右側のデータがすべてNumになってしまうのですが、原因がわかりません。なにか原因らしく部分があったら教えてください。strなどの文字や数字の部分が関わっていますか?
ご質問ありがとうございます😊
keyに指定したカラムで、左側のDataFrameと右側のDataFrameを結合できない場合はNanになります!keyの型も一致している必要があるので、左側のDataFrameの型も含めて完全に同じものが右側のDataFrameに存在するのか確認してみてください😉
こんばんは
indexの変更の所で0~8を001~009に振り直す所ででてきた、str(x).zfillの所が理解できないのですが、zfii関数はstring型のものを変形できる関数なのでしょうか。すみません勉強不足です。。
ご質問ありがとうございます!!
すみません... zfillの説明が不足していましたね😵
zfillは文字列をゼロ埋めをする関数で、「便利な文字列メソッド」という動画で解説しています!この動画の7:18あたりから解説しているので、ぜひ、合わせて見てみてください😉
便利な文字列メソッド動画 ▶︎ czcams.com/video/TjXuKz24gio/video.html
例 ) x.zfill(5) → 文字列 x を5桁になるように0埋め
便利な文字列メソッドという動画があるのですね!!それは必見そう。
後で見てみます!ありがとうございました✨
冒頭のgroupbyにつきまして
佐藤と斎藤の売上合計(sum)を集計するにはどうしたらよろしいでしょうか?
カラムを指定するのではなく、個別の佐藤、斎藤を指定したいです。
ご質問ありがとうございます😊
質問がちょっと理解しきれていないのですが、
佐藤さんの売り上げ合計 ▶︎ df[df['担当者'] == '佐藤']['売り上げ'].sum()
佐藤さんと斎藤さんの2人の売り上げ合計の場合は
▶︎ df[df['担当者'].isin(['佐藤', '斎藤'])]['売り上げ'].sum()
です!
答えになっていますかね...🤔
完璧なご回答でした。サプーさん何でもできちゃうんですね。
いつも早速のご返信感謝しております。
こんにちは!
めちゃくちゃ勉強になっています!ありがとうございます!
df.groupby('曜日').mean()
これだとどうしても動かなくて、下記だと動きました
df.groupby('曜日')['売上'].mean()