!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
※前スレ
Pythonのお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
Pythonのお勉強 Part73
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ f610-G7il)
2024/06/06(木) 08:48:10.07ID:DsazphEm0963デフォルトの名無しさん (アウアウエー Sadf-N1Zj)
2024/09/17(火) 10:20:30.50ID:TMGdiCOOa >>951
Pandasは行指向じゃなくて列指向だと判ればあとは簡単
Pandasは行指向じゃなくて列指向だと判ればあとは簡単
964デフォルトの名無しさん (アウアウエー Sadf-N1Zj)
2024/09/17(火) 10:23:43.89ID:TMGdiCOOa >>943
>明示的にしろ暗黙にしろ、オブジェクトのコピーにいちいち気を使いたくない
>コピーするだけで時間がかかるようなオブジェクトになりそうなら、
>最初からそうならない実装にする
まあこれは真実で
それならオブジェクトを保持するためのオブジェクトと
ソートするためだけのインデックスを分けるかな
>明示的にしろ暗黙にしろ、オブジェクトのコピーにいちいち気を使いたくない
>コピーするだけで時間がかかるようなオブジェクトになりそうなら、
>最初からそうならない実装にする
まあこれは真実で
それならオブジェクトを保持するためのオブジェクトと
ソートするためだけのインデックスを分けるかな
965デフォルトの名無しさん (ワッチョイ 1779-0tQg)
2024/09/17(火) 10:55:41.47ID:rwC9vNLN0 pandasはもう古いよ
polarsがついにv1公開されたからそれに移行した
loc["name"]みたいなのも消えてる
というよりインデックスというゴミが消えてる
polarsがついにv1公開されたからそれに移行した
loc["name"]みたいなのも消えてる
というよりインデックスというゴミが消えてる
966デフォルトの名無しさん (ワッチョイ ff32-uXkv)
2024/09/17(火) 10:56:23.24ID:bvtQXCJ00 複数のエクセルファイルから特定列のデータを抜き出して
新たにエクセルファイルにまとめて書き出すということをしたのですが、
複数ファイルには重複する行が含まれていて、
下記の2つを試したのですがどちらも欠損データが生じました。
1.listに一旦全部入れて、最終的にsetに一旦変換してlistに戻す
2.1行ごとに最終的なリストに含まれていない要素をチェックしながら追加
データは5列で最終的に重複処理したもので300行程度、
重複処理前でも2000行余りぐらいのデータです。
最終的にpandasで全部一旦追加した後df.drop_duplicates()にて処理して問題なく処理されたのですが
下記の方法で欠損することとかあり得るのでしょうか?
新たにエクセルファイルにまとめて書き出すということをしたのですが、
複数ファイルには重複する行が含まれていて、
下記の2つを試したのですがどちらも欠損データが生じました。
1.listに一旦全部入れて、最終的にsetに一旦変換してlistに戻す
2.1行ごとに最終的なリストに含まれていない要素をチェックしながら追加
データは5列で最終的に重複処理したもので300行程度、
重複処理前でも2000行余りぐらいのデータです。
最終的にpandasで全部一旦追加した後df.drop_duplicates()にて処理して問題なく処理されたのですが
下記の方法で欠損することとかあり得るのでしょうか?
967デフォルトの名無しさん (ワッチョイ 1779-0tQg)
2024/09/17(火) 12:11:47.72ID:rwC9vNLN0 >>959
data2str
data2str
968デフォルトの名無しさん (ワッチョイ 1779-0tQg)
2024/09/17(火) 12:16:27.92ID:rwC9vNLN0969デフォルトの名無しさん (ワッチョイ ff32-uXkv)
2024/09/17(火) 13:30:30.55ID:bvtQXCJ00 >>968
1,2とも各行””.joiin(list)してから処理しています。
1,2とも各行””.joiin(list)してから処理しています。
970デフォルトの名無しさん (ワッチョイ 7754-QNcw)
2024/09/17(火) 14:23:18.11ID:5SGUmRCR0971デフォルトの名無しさん (ワッチョイ 7f01-BggN)
2024/09/17(火) 14:53:19.06ID:ifJb33l00972デフォルトの名無しさん (ワッチョイ 7f01-BggN)
2024/09/17(火) 14:58:45.05ID:ifJb33l00 >>967
こういう命名をするとよくわかるように「データ渡すと加工して文字列にしてくれる関数名」というふわっとした問題設定がそもそも間違ってる可能性が高い
こういう命名をするとよくわかるように「データ渡すと加工して文字列にしてくれる関数名」というふわっとした問題設定がそもそも間違ってる可能性が高い
973デフォルトの名無しさん (ワッチョイ ff32-uXkv)
2024/09/17(火) 15:55:41.11ID:bvtQXCJ00974デフォルトの名無しさん (ワッチョイ 7754-QNcw)
2024/09/17(火) 16:40:41.16ID:5SGUmRCR0 人間用excelを読み込むと全然ちゃんとしてないので、
全セルを配列に読み込んで、文字列検索でタイトル行を探して、
データ範囲らしき部分を割り出して、それでもエラーは出るのでいろんなケースに対応して、
みたいなひたすら泥臭いコードになる
取り消し線で削除するのやめて
全セルを配列に読み込んで、文字列検索でタイトル行を探して、
データ範囲らしき部分を割り出して、それでもエラーは出るのでいろんなケースに対応して、
みたいなひたすら泥臭いコードになる
取り消し線で削除するのやめて
975デフォルトの名無しさん (ワッチョイ ff32-uXkv)
2024/09/17(火) 18:07:41.72ID:bvtQXCJ00 上の方でpolarsを知ったので、ちょっと試してたのですがやり方がわかりません。
2つのDFを比較して、A,B列の値が共通の場合新しい方のDFの行を使ってDFを作成するということがやりたいです。
以下のpandasの処理をpolarsでやりたいときどのようにしたら良いんでしょう?
filtered_df = dfOLD[~(dfOLD[“A”].isin(dfNEW[“A”]) & dfOLD[“B”].isin(dfNEW[“B”]))]
concat_df = pd.concat([dfNEW, filtered_df], axis=0, ignore_index=True)
2つのDFを比較して、A,B列の値が共通の場合新しい方のDFの行を使ってDFを作成するということがやりたいです。
以下のpandasの処理をpolarsでやりたいときどのようにしたら良いんでしょう?
filtered_df = dfOLD[~(dfOLD[“A”].isin(dfNEW[“A”]) & dfOLD[“B”].isin(dfNEW[“B”]))]
concat_df = pd.concat([dfNEW, filtered_df], axis=0, ignore_index=True)
976デフォルトの名無しさん (ワッチョイ 7f01-BggN)
2024/09/17(火) 18:29:39.94ID:ifJb33l00 >>973
空白は一つの例だよ
他にもtuple(list)で比較するのと"".join(list)で比較するのでは結果が異なるケースあるでしょ
それに今現在処理してるデータにそういうケースが含まれてるかどうかを調べるよりも
まずは要求仕様として列を連結した文字列が同じなら重複としてみなすのかどうかが大事
みなす仕様ならdf.drop_duplicates()を使うのは間違ってる
みなさない仕様なら"".join(list)で比較するのは間違ってる
空白は一つの例だよ
他にもtuple(list)で比較するのと"".join(list)で比較するのでは結果が異なるケースあるでしょ
それに今現在処理してるデータにそういうケースが含まれてるかどうかを調べるよりも
まずは要求仕様として列を連結した文字列が同じなら重複としてみなすのかどうかが大事
みなす仕様ならdf.drop_duplicates()を使うのは間違ってる
みなさない仕様なら"".join(list)で比較するのは間違ってる
977デフォルトの名無しさん (ワッチョイ d7b3-E6+g)
2024/09/18(水) 05:40:32.41ID:X/am8lpR0 >>956
飼育員とか
飼育員とか
978デフォルトの名無しさん (ワッチョイ ff32-uXkv)
2024/09/18(水) 10:09:46.84ID:cY7mpOqC0 自己レスです。意外とあっさり出来ました。> 975
import polars as pl
df1 = pl.DataFrame({"a": ['A1','A2','A3','A4'], "b": ['B1', 'B2', 'B3', 'B4'], "c": ['100', '200', '300', '400']})
df2 = pl.DataFrame({"a": ['A1','A2','A3'], "b": ['B1', 'B2', 'B3'], "c": ['150', '250', '350']})
filterDF = df1.join(df2, on=['a','b'], how="anti")
concatDF = pl.concat([df2, filterDF])
print(filterDF,concatDF)
import polars as pl
df1 = pl.DataFrame({"a": ['A1','A2','A3','A4'], "b": ['B1', 'B2', 'B3', 'B4'], "c": ['100', '200', '300', '400']})
df2 = pl.DataFrame({"a": ['A1','A2','A3'], "b": ['B1', 'B2', 'B3'], "c": ['150', '250', '350']})
filterDF = df1.join(df2, on=['a','b'], how="anti")
concatDF = pl.concat([df2, filterDF])
print(filterDF,concatDF)
979デフォルトの名無しさん (ワッチョイ 7754-QNcw)
2024/09/18(水) 19:08:32.27ID:6/+t/jhb0 単位の数Uがあって、nとUに対して
int(n/U)*U
を返す関数はどういう名前がいいだろう
int(n/U)*U
を返す関数はどういう名前がいいだろう
980デフォルトの名無しさん (ワッチョイ 979f-F2UQ)
2024/09/18(水) 20:05:30.82ID:EisHWYAH0 floor/round_down/align + (to +) unit/multiple
981デフォルトの名無しさん (ワッチョイ ff34-9HnH)
2024/09/18(水) 20:09:46.82ID:pnKtz9DD0 discretizeとか?
982デフォルトの名無しさん (ワッチョイ ff34-9HnH)
2024/09/18(水) 21:47:38.42ID:pnKtz9DD0 音楽ソフトなんかでは
拍子の位置に揃えるのを
quantizeって言うな
拍子の位置に揃えるのを
quantizeって言うな
983デフォルトの名無しさん (ワッチョイ ffd6-zJrB)
2024/09/18(水) 22:23:17.78ID:9wk3LXWe0 n//U*Uと(n+U-1)//U*Uが区別できる命名にしたいね
984デフォルトの名無しさん (ワッチョイ 577c-18DD)
2024/09/19(木) 18:45:28.76ID:WvuWfkM50 >>979
普通はtruncateじゃない?SQLにTRUNC関数がある
普通はtruncateじゃない?SQLにTRUNC関数がある
985デフォルトの名無しさん (ワッチョイ 9f9e-0tQg)
2024/09/19(木) 19:05:10.19ID:Cti+u+u60 MATLABのfloor(x, unit)と同じだからfloorだろう
986デフォルトの名無しさん (ワッチョイ 7754-QNcw)
2024/09/19(木) 19:26:31.64ID:dEupb3oa0 floorか
整数へのfloorはunit=1の特殊ケース
整数へのfloorはunit=1の特殊ケース
987デフォルトの名無しさん (ワッチョイ 1772-9HnH)
2024/09/19(木) 19:34:49.21ID:bCkvflxL0 整数化のfloorが有名過ぎて
混同の可能性ない?
混同の可能性ない?
988デフォルトの名無しさん (ワッチョイ b701-k4xX)
2024/09/19(木) 23:17:36.39ID:Fum1rv8F0 関数の命名は内部実装がどうなってるかではなく
どういう意図でその関数を呼ぶのかという観点を第一とすべき
そのための第一歩は自然言語で意図を記述すること
それができてないうちは適切な命名とか無理
どういう意図でその関数を呼ぶのかという観点を第一とすべき
そのための第一歩は自然言語で意図を記述すること
それができてないうちは適切な命名とか無理
989デフォルトの名無しさん (アウアウエー Sadf-3vlU)
2024/09/20(金) 11:26:49.09ID:ZOd0SPdka appendとかaddとかpushとか滅茶苦茶
990デフォルトの名無しさん (ワッチョイ 7754-QNcw)
2024/09/20(金) 11:52:25.51ID:L1lWeffx0 strだとreplaceでreだとsubなのやめて欲しい
991デフォルトの名無しさん (ワッチョイ 9f80-8z35)
2024/09/20(金) 11:58:37.64ID:kOrYHKy20 >>988
趣味でやってる人は仕様とかテストに縁がないからそういう感覚がたぶん分からないんだよ
趣味でやってる人は仕様とかテストに縁がないからそういう感覚がたぶん分からないんだよ
992デフォルトの名無しさん (ワッチョイ 577c-18DD)
2024/09/20(金) 13:09:25.28ID:60VyqBLX0 >>985-987
数学的には、floorとかceilとかはunit=1のことしか指さない関数(というか、ℝ→ℤでそもそも定義域と値域の集合が異なるともいえる)なんだよねえ。この辺をどう見るか。
Python風に言えば、int(float_val)と、math.floor(float_val)は型が違うでしょう?という
ただ、>>988 のいっているように、これらは、絶対に考慮しなければならないことではなく、文脈依存だと思う。
https://ja.m.wikipedia.org/wiki/床関数と天井関数
数学的には、floorとかceilとかはunit=1のことしか指さない関数(というか、ℝ→ℤでそもそも定義域と値域の集合が異なるともいえる)なんだよねえ。この辺をどう見るか。
Python風に言えば、int(float_val)と、math.floor(float_val)は型が違うでしょう?という
ただ、>>988 のいっているように、これらは、絶対に考慮しなければならないことではなく、文脈依存だと思う。
https://ja.m.wikipedia.org/wiki/床関数と天井関数
993デフォルトの名無しさん (ワッチョイ 7ff1-18DD)
2024/09/20(金) 13:16:40.50ID:opX5hmp20 >>979
単位変換くん2
単位変換くん2
994デフォルトの名無しさん (ワッチョイ 7754-QNcw)
2024/09/20(金) 13:19:35.67ID:L1lWeffx0 return int(n/unit)*unit
とすると、unitをintで与えるとintで返って、
floatで与えるとfloatで返る
直線を階段状に変換する図としては相似で、
階段の高さが1なのかそれ以外なのか
1以外だとして整数である必要もなく、有理数への自然な拡張に見える
とすると、unitをintで与えるとintで返って、
floatで与えるとfloatで返る
直線を階段状に変換する図としては相似で、
階段の高さが1なのかそれ以外なのか
1以外だとして整数である必要もなく、有理数への自然な拡張に見える
995デフォルトの名無しさん (アウアウエー Sadf-N1Zj)
2024/09/20(金) 14:17:35.31ID:ZOd0SPdka >>994
>return int(n/unit)*unit
>とすると、unitをintで与えるとintで返って、
>floatで与えるとfloatで返る
return int(float(n)/unit)*unit
って描いた方が良いよ
>return int(n/unit)*unit
>とすると、unitをintで与えるとintで返って、
>floatで与えるとfloatで返る
return int(float(n)/unit)*unit
って描いた方が良いよ
996デフォルトの名無しさん (ワッチョイ f773-3oJL)
2024/09/20(金) 15:38:24.41ID:FmKVvlRa0 pandasのto_excelってopenpyxlを使ってるんだな
997デフォルトの名無しさん (ワッチョイ 7754-QNcw)
2024/09/20(金) 15:58:36.50ID:L1lWeffx0 openpyxlの遅さは実用にならないレベル
テスト用の小さいファイルでも普通に遅い
本番の大きなファイルだと数時間単位かかる
テスト用の小さいファイルでも普通に遅い
本番の大きなファイルだと数時間単位かかる
998デフォルトの名無しさん (ワッチョイ ff32-uXkv)
2024/09/20(金) 16:09:16.36ID:O/CsEend0 大きなファイルって何万行ぐらいあんの?
999デフォルトの名無しさん (ワッチョイ 7756-b6L8)
2024/09/21(土) 06:41:17.65ID:webYnJz00 エクセル作業の自動化でpythonでプログラム書いて完成はしたんだけど、書き込みが遅すぎる。
普通に手動でエクセル開いて書き込んで閉じた方が早いレベル。
マクロ含んでるからopenpyxlを使わないとダメだし、調べたらwrite_onlyモードにすると早いってあったけど、あれって新規でブック作る為のやつだよね。
何かいいのないのかしら。
普通に手動でエクセル開いて書き込んで閉じた方が早いレベル。
マクロ含んでるからopenpyxlを使わないとダメだし、調べたらwrite_onlyモードにすると早いってあったけど、あれって新規でブック作る為のやつだよね。
何かいいのないのかしら。
1000デフォルトの名無しさん (ワッチョイ 9745-18DD)
2024/09/21(土) 08:47:29.73ID:yFilHDZF0 Excelのない環境で動作させんじゃなきゃ
ネイティブのスクリプト(TypeScript)使うのが素直
ネイティブのスクリプト(TypeScript)使うのが素直
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 106日 23時間 59分 20秒
新しいスレッドを立ててください。
life time: 106日 23時間 59分 20秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 [ぐれ★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 【神戸】エレベーター「かご」なく男性医師が転落死 大手「三菱電機ビルソリューションズ」の担当者、安全装置切り放置か [ぐれ★]
- 【福岡】「人が道路に寝込んでいた。顔面から出血し、うなり声をあげている」 福岡市中央区で男性はねられ死亡 タクシー運転手逮捕 [ぐれ★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 高市、メガソーラー廃止。環境破壊が社会問題化 [792147417]
- クリスマスに何かする「予定なし」は54%。 過去最高水準に。ケーキの値上げもあって節約志向へ [663766621]
- 他人のリクエストで自分の癖と異なる絵を上げる絵師いるじゃん?
- なぜ日本人はフード被らないの?寒いのに
- ワイが考えてるキャラ当ててみろやwww
- 🏡おい!返事しろ︎︎!知的障害者!
