X



【まず1嫁】くだすれPython(超初心者用) その54

レス数が950を超えています。1000を超えると書き込みができなくなります。
2021/06/09(水) 21:05:44.61ID:zRBfpo4e
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
2021/09/18(土) 02:04:45.09ID:75qnM2AM
>>852
自治体とコインランドリーに許可を取れ
ちゃんと筋を通せば金になるかもしれんぞ
854デフォルトの名無しさん
垢版 |
2021/09/18(土) 08:28:17.55ID:bA/qQPAi
>コインランドリーの稼働データを集計して空いてる確率が高い時間帯

台風の最中は空いてそうだ
2021/09/18(土) 08:29:01.24ID:BxqtlgPJ
正攻法は>>853だけど裏技的にやるんだったらMVNOのSIM契約してipとかUAを変えながらスクレイピング。
向こうも機械アクセスだと気づきにくくなる。
ただカムフラしてまでやろうとしたということで相手に迷惑かけるかもって気持ちが入ることになるから訴えられたときには不利になる。
2021/09/18(土) 08:41:27.45ID:+7IeVSKz
>>852
図書館の例があるから無許可はもう何しても危ないよねっていうのが共通認識だと思うよ
857デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:09:44.75ID:2a7FPWkS
フォルダ内のファイルをenumerate()で一括連番リネームします
リネーム後の名前が既存かもしれないとき

1回目のループでexistsならパスとリネームを記録,大丈夫ならリネーム
2回目のループで記録したパスをリネーム

これで重複回避して全件リネームできますか?
手元ではできてる気がするんだけど,例外パターンがあるような気がする
(windowsのロングパスとか編集不可属性とか並び順の話は置いといてください)

--
元 : 新
000.txt → 1.txt
00.txt → 2.txt
1.txt → 3.txt
3.txt → 4.txt
こういうことがしたいのです
2021/09/18(土) 09:33:30.24ID:jUwIv+ht
e.txtがすでに存在していたらどうするん?
2021/09/18(土) 09:34:02.57ID:jUwIv+ht
3.txtの間違い
2021/09/18(土) 09:44:49.40ID:lb+sAgRD
>>853-856
回答ありがとうございます
心配性なので許可を取る以外のリスク回避策も知りたいのです
例えば、プログラム書いてもバグでF5アタックレベルの猛烈なアクセスをすることってありえますよね
そういうのが起きないような安全装置の作り方
自前で作ったサーバにも同時にアクセスしてアクセス頻度を証明するログを取る(v6共有IP巻き添え捜査対策)
何らかの理由で訴えられたとき勝つための材料を集めておく
などの方法を教えてくれる書籍がないかと探しています
2021/09/18(土) 09:46:54.79ID:BxqtlgPJ
.netだとtempのファイル名を持ってくるメソッドがあったな。
個人用途でリネーム中に他人がファイル名を変更するという懸念がない条件ならランダム英数字の中間ファイル名を経由してリネームすればいいんじゃない?
企業ユースとかでしっかりやる必要のある処理かつリネーム中の障害とかまで考えるなら安直なリネームは処理中の状態が不安定だから禁忌だと言われるね。
ファイルコピーすると同時に名称変更してリネーム後のファイル群を作り完成したところで元ファイルを削除みたいな動作にする。
(もちろんスピードやディスク容量とかの要件とも相談)
2021/09/18(土) 09:56:28.76ID:dDlDUvsj
対象フォルダにtmpフォルダ作ってそこにリネームして入れていけばいいんじゃ
2021/09/18(土) 09:56:58.79ID:9Dfq3hh+
>>857
その方法だと下の3行のリネームも無理じゃね
0.txt→ 1.txt
1.txt→ 2.txt
2.txt→ 3.txt
俺は、1回目でリネームできないときは
uuid.uuid4().hex を付加してリネームして
2回目で、uuid.uuid4().hexを付加したファイルを、目的のファイル名にリネームしてる
864デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:04:11.39ID:bA/qQPAi
>>857
000.txt -> 1.txt -> 2.txt -> 3.txt -> ... って無限に繰り返す危険は0と言い切れる?
865デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:44:49.91ID:2a7FPWkS
>>863
あーそうか…
じゃあexistsのときはunique_suffix付きでリネームして
最終的にケツ削る感じにします
uuid知らなかったんですが、いいですねこれ
今回は259文字制限下なのでアレだけど勉強になりました
2021/09/18(土) 12:17:29.33ID:9Dfq3hh+
>>865
ちなみに、existsするのがフォルダだった場合処理できないよ
2.txtみたいな名前のフォルダ・・・
2021/09/18(土) 13:21:25.11ID:IiEq2a0h
>>852
素人は、本番サーバーでテストしてはいけない。
素人のアプリは、バグで無限ループして、何万回もアクセスするから

必ずダウンロードして、自分のPC 内でテストしないといけない

それと本番サーバーに、100回とか繰り返しアクセスする場合は、
必ず、相手のrobots.txt を遵守すること!

または、相手と契約して、API を使うこと

基本、スクレイピングは営業妨害との戦い。
どの本にも、そう書いてある。
スクレイピングを推奨する本はない

必ず、robots.txt 遵守か、許可を得る、または契約すべき

山浦清透、2021/6

【作業工程フル公開】エンジニアが30万円案件の制作過程を公開
www.youtube.com/watch?v=tYbVl6N8oxI

この動画では、Laravel で、マイナビ転職をスクレイピングしている。
27:40 から、robots.txt を調べている
868デフォルトの名無しさん
垢版 |
2021/09/18(土) 13:56:07.34ID:LBCfu3j9
どの本にも〜とか言う割に本は挙げないのな
2021/09/18(土) 15:25:34.95ID:ZDaB5e5K
selenium(ChromeDriver)で
すでにbuttonのWebElementまで取得している状態で、単にそれがクリック可能になるまで待つときはどう書けばいいの?
イメージは↓こんなだけどWebElementは引数に与えられないみたい。
WebDriverWait(driver, 5).until(
EC.element_to_be_clickable(button)
)
2021/09/18(土) 15:34:01.38ID:aJjTmiOO
改めて locator を与えればいいんじゃね?
2021/09/18(土) 15:58:23.33ID:9lUPAjpA
ある条件を満たした時にプログラムを再起動したくて
subprocess.call(__file__, shell=True)
と記述してるんですが挙動がおかしいです
どうおかしいのかと言うと、プログラムを強制終了したい箇所で
sys.exit()
と記述してるんですが、そこでも再起動されてしまいます
どう改善したら良いでしょうか
2021/09/18(土) 16:03:37.86ID:ZDaB5e5K
>>870
WebElementオブジェクトからlocarorって取得可能?
今回のbuttonが、findで一意に特定できないエレメントだから、Waitの例でネットによく書いてあるBy.xxxの書き方だと、複数のbuttonがWaitの対象になってしまうんだよね
特定の1つのエレメントだけをwaitの対象にしたいのだが
873871
垢版 |
2021/09/18(土) 16:03:39.53ID:9lUPAjpA
>>871の補足です
subprocess.call(__file__, shell=True)
で、一度再起動した後で、
sys.exit()
を実行すると、強制終了しないで再起動してしまう挙動を何とかしたいということです
2021/09/18(土) 16:17:13.98ID:9lUPAjpA
自己解決しました
>>871>>873の質問は撤回します
2021/09/18(土) 17:09:13.84ID:jUwIv+ht
どう解決したのか書くのが礼儀やで
876デフォルトの名無しさん
垢版 |
2021/09/18(土) 18:13:33.17ID:J85RgKD5
頭のおかしい人に以下のようなことを言われました

>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない

具体的な書籍名を教えてください


>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない

どこでそんなルールが決まっているのでしょうか?
2021/09/18(土) 18:30:17.02ID:6JilEPez
マルチポストすんな
2021/09/18(土) 18:53:11.55ID:b0edjBZj
>>876
お前頭悪そうだな
2021/09/18(土) 18:54:45.08ID:+/kaLHzE
>>876
> どこでそんなルールが決まっているのでしょうか?
決まってないよ
ただ普通の頭持ってたらマルチポストが回答者に失礼だと言うことはわかるはず
2021/09/19(日) 04:35:52.74ID:rCAdh0cW
>>876
Rubyガイジに頭悪いと指摘されるとか相当だぞ
肉塊の方が賢いまであるなw
2021/09/19(日) 05:44:05.93ID:yvbuOcQZ
肉塊って何?
2021/09/19(日) 06:35:05.82ID:XiUCEd2G
>>872
カスタム待機条件を作って elem.is_enabled() を返すのは?
2021/09/19(日) 15:05:50.16ID:snblcpQq
>>882
なるほど、カスタム待機条件というのがあったか。
これでエレメント引数にした待機できた。ありがとう
2021/09/22(水) 08:26:17.31ID:ykk+hhl9
Python3.9.7で、テキストボックスに右クリックメニューをつけたいのですがうまくいきません

input1 = tk.Entry(root,textvariable = x1_str, width = 5)

def show_right_click_menu(e):
____w = e.widget
____right_click_menu.entryconfigure("切り取り",
____command=lambda: w.event_generate("<<Cut>>"))
____right_click_menu.entryconfigure("コピー",
____command=lambda: w.event_generate("<<Copy>>"))
____right_click_menu.entryconfigure("貼り付け",
____command=lambda: w.event_generate("<<Paste>>"))
____right_click_menu.entryconfigure("削除",
____command=lambda: None if 0 else w.delete(w.index("sel.first"),w.index("sel.last")))
____right_click_menu.entryconfigure("すべて選択",
____command=lambda: w.select_range(0, "end"))
____right_click_menu.tk.call("tk_popup", right_click_menu, e.x_root, e.y_root)

選択していない状態で削除を実行すると下記エラーがコンソールにでます
_tkinter.TclError: selection isn't in widget .!entry

エラーが表示されないようする方法をご教示いただけませんか
エラーが表示されるだけで問題なく動いていますが気持ち悪いので
2021/09/22(水) 16:50:16.15ID:wN494UoL
pythonで、いわゆるDBのコネクションプールのような、限られた複数資源をプールにして使い回す基本的な仕組みって何かありますか?
DBで使うわけではないので汎用的なものを想定してます
たとえば資源として5つのインスタンスがあり、要求側はそれのいずれかが空いていれば排他的に1つのインスタンスを獲得し、すべて獲得済みの場合は任意の時間待機させる、というイメージです
要求側は必要な処理が終わればインスタンスをプールに返します
キューを使ってできそうな気がしますがもう少し実装しやすいものとかありますかね?
2021/09/22(水) 20:35:20.60ID:N9zBagLQ
>>885
しったかで書く
PyPIで多数ヒットするけど逆にこれってのはないからインターフェイスの好みで選択
どうせ中身はQueueかdeque
DB接続でいうとドライバやミドルウェアにだいたい専用のが付いてくる
2021/09/22(水) 23:15:37.85ID:rplKfx8l
>>886
ヒントありがとう
PyPIで見たら確かにだいたいqueueで実装されてた。ソース参考にして実装してみます
2021/09/23(木) 01:31:50.40ID:ERg2ncYO
Pythonも最近ではそんな真面目な用途でも使われそうな感じになってきてるのか。
おじさんびっくりだわ。
889デフォルトの名無しさん
垢版 |
2021/09/23(木) 02:31:58.77ID:GanDJT5R
独学プログラマーを読んで勉強始めた方いますか?
Amazonレビュー見ると意味不明なURLや冗長な表現など初心者を惑わせる表記があるようで
初心者向けとは言えないような印象を受けますが、通しで読むとちゃんと初心者向けになってるのでしょうか?
890デフォルトの名無しさん
垢版 |
2021/09/23(木) 09:05:11.72ID:aonnyzzk
self taught programmerは英語版をパラパラと眺めた程度だけど、悪い本じゃないと思う
どの教材にも欠点はあるから、多少のことは気にせずにさっさと取り掛かったほうが良いと思う
初心者が自分にとって完璧な教材を見つけるのは無理

他の本のほうが良さそうなら他のでもいいし、無料のweb教材でもいいし
2021/09/23(木) 09:37:27.55ID:aonnyzzk
ちなみに『独学プログラマー』は「自力でプログラムを覚えて仕事を始めるまで」が一番大きなテーマであって
pythonのことを手取り足取り教える目的で書かれたものではない

単純にpythonの基本を学びたいだけなら、もう少し狭い内容を扱った他の本が良いかもしれない
892デフォルトの名無しさん
垢版 |
2021/09/23(木) 11:14:45.24ID:zah9lHsX
そもそも独学出来るようなプログラマーならそんな本読まなくても出来るからな
2021/09/23(木) 12:55:36.27ID:aonnyzzk
>そもそも独学出来るようなプログラマーならそんな本読まなくても出来るからな

これはその通りで、基礎的なことは全部ネットに無料で落ちているので、わざわざ本を買う必要はない。
本で学ぶのが好き、って人もいるだろうから全否定するつもりはないけど。
2021/09/23(木) 13:12:18.93ID:3iEJN86R
spring bootは本買わないと無理あのntt data様が出してる奴
2021/09/23(木) 15:24:28.97ID:Hq81xlZ0
>>888
LAMP(Linux,Apache,MySQL or MariaDB,PHP or Perl)のPがPythonに移行されつつある
DBの方もPostgreSQLに変わりつつある
2021/09/23(木) 15:26:56.89ID:xxtNZLaL
LAPP?
2021/09/23(木) 15:40:45.97ID:w4tdfW/t
ApacheもNginxに移行
2021/09/23(木) 15:50:02.39ID:Ru7FlOs1
Apache も Nginx に移行してるから LNPP かな?
2021/09/23(木) 15:55:26.37ID:Sp5Iyysf
いまさらPostgresが主流になるような感じはしないがな。
DBMS全体でPostgresのシェアは上がってきているがMySQLも同様にシェアを拡大している。
そもそも普及率が倍くらい違うし。
2021/09/23(木) 16:00:23.97ID:Hq81xlZ0
MySQLはOracle→MySQLに意図的にOracleが動いてるみたいね
2021/09/23(木) 16:18:46.38ID:Ru7FlOs1
まあ倍半分違う(対数スケールなので注意してね)からそうそう主流が入れ替わることはないと思うけど PostgreSQL と MongoDB が頑張ってるな
https://news.mynavi.jp/article/20200403-1009423/images/002l.jpg
2021/09/23(木) 16:20:47.11ID:/gKnAjHi
postgreSQLは最近覚えたけどそこまでメリットは感じない
pythonから叩くにあたってmysqlから面倒くさい部分は増えた
2021/09/23(木) 17:48:30.88ID:LWGez+JK
pip listでsympyが確認できるのに

>>> import sympy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sympy'

となるのはなぜですか?
2021/09/23(木) 18:00:58.85ID:3iEJN86R
インタープリターに入らずにpip install sympyだって前ここで誰かが言ってた気がする
2021/09/23(木) 18:05:30.32ID:cmFu96z6
実行したpipはver2系だったってのは(俺が)割とよくやるミス
2021/09/23(木) 18:08:54.09ID:Hq81xlZ0
>>902
PostgreSQL用ドライバ必要だからな
2021/09/23(木) 18:23:39.46ID:QMUWvoXV
>>905
同じく
そのためのpip3だけどね
2021/09/23(木) 19:48:46.26ID:ERg2ncYO
MySQLは単純かつ高速に動かしたい時は鉄板
2021/09/23(木) 20:52:10.59ID:LWGez+JK
>>904
>>905
pipでもpip3でももうインストールされていますみたいなメッセージが出ます
2021/09/23(木) 22:25:39.27ID:Ok65a0lv
>>884
自己解決しました
def show_right_click_menu(e):
____w = e.widget
____def show_right_click_menu_delete():
________nonlocal w
________try:
____________w.delete(w.index("sel.first"),w.index("sel.last"))
________except:
____________pass
____right_click_menu.entryconfigure("切り取り",
____command=lambda: w.event_generate("<<Cut>>"))
____right_click_menu.entryconfigure("コピー",
____command=lambda: w.event_generate("<<Copy>>"))
____right_click_menu.entryconfigure("貼り付け",
____command=lambda: w.event_generate("<<Paste>>"))
____right_click_menu.entryconfigure("削除",
____command= show_right_click_menu_delete)
____right_click_menu.entryconfigure("すべて選択",
____command=lambda: w.select_range(0, "end"))
____right_click_menu.tk.call("tk_popup", right_click_menu, e.x_root, e.y_root)

tkinterがよく分からない
次は、undo redo をなんとかしたい
2021/09/24(金) 00:17:26.60ID:wqDlteq1
>>867
レス遅れてしまい申し訳ありません
時間つくっていくつか書籍を立ち読みしてみましたが
訴えられる前提でスクレイピングする本は当たり前のようにありませんでした
テストサーバでプログラム作ってから、相手に連絡した上で動作させるのが最低限のマナーで
あとはもう自分で創意工夫して逮捕防ぐしか無いですね
2021/09/24(金) 08:20:48.10ID:KibxKmAg
>>730
このpython3.8だとproxy繋がるけど3.9だとダメになる問題は自分自身で解決しますた。
https://github.com/psf/requests/issues/5740
こことかそのリンク先に書いてある。
社内環境でセキュリティのためproxyでHTTPS通信を復号化してるんだけどそんな特定条件で起こるらしい。
.condarcのhttpsのproxyをサンプルを真似してhttps://hogehogeって書いてたけどhttpに修正したら繋がるようになった。
2021/09/24(金) 08:36:42.56ID:EhTNSQ6t
ニシキヘビともんごイカか
LNPyM
2021/09/24(金) 09:00:12.81ID:sjjiTDvK
pandasで下の様なデータフレームOLD,NEWがあります。
df_OLD
 商品名 価格 種類
0 バナナ 100 フルーツ
1 トマト 150 野菜

df_NEW
 商品名 価格 種類
0 バナナ 120 フルーツ
1 トマト 130 野菜

OLDとNEWを商品名で比較して、一致した場合にNEWの値と置き換えたいときってどの様にしたら良いのでしょう?
一気に比較してくれる方法とかあるんでしょうか?
1行ずつ比較しないといけないのでしょうか?
2021/09/24(金) 09:05:37.12ID:wqUtxwi5
>>914
価格の値を更新すれば良いのかな?
pandas.DataFrame.update でいかがでしょう

公式
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.update.html

日本語の参考記事は適当に検索すれば出てくる
2021/09/24(金) 09:08:51.13ID:KibxKmAg
updateは?
2021/09/24(金) 09:29:05.87ID:sjjiTDvK
>>915-916
後出しみたいになって申し訳ありません。
update試しましたが、同一行を置き換えるのですね。

やりたいこととしては、NEWの方は並び順は一致せず、
さらに新規データの追加やキーとなる列(商品名)以外の内容の変更もしたいのです。

df_NEW
 商品名 価格 種類
0 スイカ 150 野菜
1 バナナ 120 フルーツ
2 トマト 130 野菜B
2021/09/24(金) 09:37:04.32ID:wqUtxwi5
やりたいことが良く分からないんだけど

(1) df_NEW のデータは全て保持したい
(2) df_OLD にあるもので、df_NEWに無いものはdf_NEWに追加したい

という解釈でも良いのかな?
それなら df_NEWと df_OLD の差分をとって、そのうちdf_NEWに欠けているものをdf_OLDから追加するという方法でも良い?
2021/09/24(金) 09:38:42.26ID:sjjiTDvK
>>918
わかりづらくてすみません。
・OLD側に同じ商品名があればNEWの内容で更新。
・ NEWにしか無い商品はOLDに追加です。
2021/09/24(金) 09:43:23.68ID:wqUtxwi5
>>919
df_NEWというのはすでにpandas.DataFrameの形で持っているということで良いですか?
その場合、df_NEWに入っている値は全て正しい(更新する必要はない)ということになりますよね。おそらく。

それならdf_OLDを更新するという発想にこだわる必要はなくて、NEW無いものをOLDから追加するという発想に転換しても良いのでは?
その場合、私ならmergeを使うと思います。

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html
2021/09/24(金) 09:46:08.06ID:sjjiTDvK
>>920
ありがとうございます。なるほど、そっちの考え方の方が良さそうですね。
ちょっと試してみます。わからなかったらまた質問させてください。
2021/09/24(金) 10:15:48.12ID:sjjiTDvK
現状のままだと、希望結果=NEWになってしまうので少し変更して試しました。
df_New2=pd.merge(ldf_New ,ldf_Old,on=['商品名'],how='outer')
df_Old**************************************************
商品名 価格 種類
0 バナナ 100 フルーツ
1 トマト 150 野菜
2 人参 50 野菜C
df_New**************************************************
商品名 価格 種類
0 スイカ 150 野菜
1 バナナ 120 フルーツ
2 トマト 130 野菜B
df_New2**************************************************
商品名 価格_x 種類_x 価格_y 種類_y
0 スイカ 150.0 野菜 NaN NaN
1 バナナ 120.0 フルーツ 100.0 フルーツ
2 トマト 130.0 野菜B 150.0 野菜
3 人参 NaN NaN 50.0 野菜C
2021/09/24(金) 10:16:10.57ID:sjjiTDvK
しかし希望する結果は以下のとおりです。
この様にしたい場合どうしたら良いのでしょう?
df_New2**************************************************
商品名 価格 種類
0 スイカ 150.0 野菜
1 バナナ 120.0 フルーツ
2 トマト 130.0 野菜B
3 人参 50.0 野菜C
2021/09/24(金) 10:17:19.90ID:sjjiTDvK
すみません。式は以下です
df_New2=pd.merge(df_New,df_Old,on=['商品名'],how='outer')
2021/09/24(金) 10:34:25.61ID:KibxKmAg
日本語で仕様が決まったらまたご相談くださいって感じかな。
その場合はこうして欲しいってのがコロコロ変わりそう。
2021/09/24(金) 11:00:59.24ID:+y7bOBPx
正規表現のfindall()の挙動について質問です
内線を含む電話番号に対する正規表現パターンを用意(現在使用している参考書のコピペ)し、
適当な番号を与えfindall()で取得したリストを出力しました
コードは↓に
https://techiedelight.com/compiler/?22O5

結果としては print(regex.findall('012-345-6789 x 123')) に対し、出力が
[('012-345-6789 x 123', '012', '-', '-', ' x 123', 'x')]
 だったのですが、何故こうなるのか解りません

'012-345-6789 x 123', '012', '-', までは解るのですが、なぜそのあと '345' や '6789' が取得されず、
また、'x 123' の取得後に 'x' だけが取得されるのでしょうか
2021/09/24(金) 11:27:05.39ID:fM0vlPdr
必要な部分は()で囲え
不要な部分は(?:)にしろ
2021/09/24(金) 12:00:20.17ID:+y7bOBPx
>>927
あ〜〜途中の \d{3} などは () で囲われてないからグルーピングされてないために弾かれちゃってたんですね
以下のようにして
https://techiedelight.com/compiler/?SVye
以下の出力結果を得ることができました
[('012-345-6789 x 123', '012', '-', '345', '-', '6789', ' x 123', 'x')]

最後に取得されている x については (?:) を使用するんでしょうか?
(?:) という記法についてまだ知らないので調べてみます

レスありがとうございました
2021/09/24(金) 12:10:24.86ID:sjjiTDvK
いろいろ試して、以下で思う様な結果を得る事ができました。
アドバイスありがとうございました。
df_New2=pd.merge(df_New,df_Old,on=['商品名'],how='outer',suffixes=("","_d"))
df_New2['価格'].fillna(df_New2['価格_d'], inplace=True)
df_New2['種類'].fillna(df_New2['種類_d'], inplace=True)
df_New2.drop(['価格_d','種類_d'], axis=1)

上記2行目と3行目ってまとめて書いたり、”_d”で終わる列とかで指定できるのでしょうか?
2021/09/24(金) 12:12:56.73ID:/f3Q922M
>>923
それだったら、同じ商品名のデータを上書きするっていう考え方じゃなくて、
oldだけに有ってnewに無いデータだけ抽出して
それをnew側のdfにくっ付けるってやり方があるかな

一応、想定通りには動くけど
大分不細工なやり方になっちゃったから許して……
https://ideone.com/oxdsR3
2021/09/24(金) 12:23:17.91ID:sjjiTDvK
del_old_df = old_df[old_df["商品名"].isin(new_df["商品名"])]
こんなこともできるんですね。ありがとうございます。
こっちの方がてっとり早いですね。
2021/09/24(金) 16:46:18.89ID:EhTNSQ6t
sympyがあれば中学の数学の基礎までなら
2021/09/24(金) 17:00:32.91ID:41w/BiYs
>>909
pip show sympy
のLocationと
import sys, pprint
pprint.pprint(sys.path)
を見比べてみよう
2021/09/24(金) 17:01:28.66ID:ZghczHx7
ファイルの最後の行に
return 1
と書くと、「SyntaxError: 'return' outside function」
というエラーが出てしまいます
ファイルの最後の行に書く必要はないってことですか?
2021/09/24(金) 17:02:20.29ID:LxZpM9VS
書く必要がないではなく書いてはいけない
2021/09/24(金) 17:06:17.94ID:ZghczHx7
関数の最後の行には書くのに
ファイルの最後の行に書いちゃいけないのは何故ですか?
2021/09/24(金) 17:13:47.22ID:YQZl96Xn
どこに戻るんだよ?
2021/09/24(金) 17:15:32.95ID:ZghczHx7
では、親プロセスに戻る時に
どうやって戻り値を返すんですか?
2021/09/24(金) 17:36:24.36ID:TJ6IbgR5
sys.exit()
2021/09/24(金) 18:11:39.61ID:ZghczHx7
>>939
そうやるんですか
ありがとうございます
941デフォルトの名無しさん
垢版 |
2021/09/24(金) 19:58:52.71ID:cH5BLcev
もしかして

1 名前順並び
2 ファイル名は任意
という条件で
指定したファイルの1つ下に新規ファイルを保存する
って難しいですか?
makeChildPathName()みたいな関数が作りたい

https://i.imgur.com/Oa07h0G.png
2番目のファイルパスを指定したら2番目と3番目の間に新規ファイルを挿入保存したいということです
2021/09/24(金) 20:28:15.14ID:zSlDj9mb
任意のフォルダ下のファイル名を取得して自分で並べ替えて挿入すればいいじゃん。
自分だったらWindowsのファイルの並び順の仕様を調べてPython側で同じように並べ替える。
それがめんどくさければsubprocessでDIRの結果を取ってくる。
「間に入るように」の部分は仕様が不明確だから答えようがない。
もし仕事なら_001とかつければいいと思ってるなら危険。
挿入されるファイルの規則に沿ったファイルがあらかじめ存在した場合にどうすればいいのかとか元のファイル名がパス260文字のギリギリまであったらどうするかとかまで詰めないと。
943デフォルトの名無しさん
垢版 |
2021/09/24(金) 21:20:10.36ID:/dwjMJ8P
>>942
path1<new<path2
になる文字列の自動生成でしょ
無理じゃないか
windowsは仕様公開してないし
2021/09/24(金) 21:53:51.05ID:Kyc5NeAQ
>>943
元のファイル名は、数字のみといった規則があればできるかも
汎用的なのはリネームしないと挿入できないケースもあるしめんどいね
パスの長さの規則もないと辛い
2021/09/25(土) 06:29:33.65ID:dHZYhTax
plot_surfが僅か3600座標の描画で20分以上掛かる
点の散布図なら100万座標でも1分未満だが
946デフォルトの名無しさん
垢版 |
2021/09/25(土) 11:31:35.29ID:lBxoEpbF
windowsはcmdプロンプトでdirした順番と
explorerで観れる順番がそもそも違うし
sortしても解決しないω
947デフォルトの名無しさん
垢版 |
2021/09/25(土) 11:32:33.68ID:lBxoEpbF
>>945
meshにしてる?
948デフォルトの名無しさん
垢版 |
2021/09/25(土) 14:13:18.95ID:hl+7wKHR
>>946
explorerでってんだからAPIソート1択でしょ。そこは
949デフォルトの名無しさん
垢版 |
2021/09/27(月) 19:04:05.97ID:EG3c4N9U
辞書のkeyに対するリスト型のvalueを使いやすいように良い感じに分解したい、または取り出したいんですがどうやれば良いんでしょう?
950デフォルトの名無しさん
垢版 |
2021/09/27(月) 19:15:37.57ID:UiRgP5VH
ちょっと何言ってるかわかんない
951デフォルトの名無しさん
垢版 |
2021/09/27(月) 19:23:20.36ID:EG3c4N9U
値がリストなんですよ
2021/09/27(月) 19:26:32.30ID:h2Q4WFZZ
ただの2次元データだから
keyとリストのindexで2回解決したら任意のデータにはたどり着けるけど
どう扱いたいのか目的がわからんとなんとも
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況