X



【まず1嫁】くだすれPython(超初心者用) その54
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
垢版 |
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 ###
0851デフォルトの名無しさん
垢版 |
2021/09/17(金) 08:59:56.61ID:UtF7UwZj
>>848
dependencyは満たしているか?
0852デフォルトの名無しさん
垢版 |
2021/09/18(土) 01:57:16.35ID:lb+sAgRD
スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります
0854デフォルトの名無しさん
垢版 |
2021/09/18(土) 08:28:17.55ID:bA/qQPAi
>コインランドリーの稼働データを集計して空いてる確率が高い時間帯

台風の最中は空いてそうだ
0855デフォルトの名無しさん
垢版 |
2021/09/18(土) 08:29:01.24ID:BxqtlgPJ
正攻法は>>853だけど裏技的にやるんだったらMVNOのSIM契約してipとかUAを変えながらスクレイピング。
向こうも機械アクセスだと気づきにくくなる。
ただカムフラしてまでやろうとしたということで相手に迷惑かけるかもって気持ちが入ることになるから訴えられたときには不利になる。
0857デフォルトの名無しさん
垢版 |
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
こういうことがしたいのです
0860デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:44:49.40ID:lb+sAgRD
>>853-856
回答ありがとうございます
心配性なので許可を取る以外のリスク回避策も知りたいのです
例えば、プログラム書いてもバグでF5アタックレベルの猛烈なアクセスをすることってありえますよね
そういうのが起きないような安全装置の作り方
自前で作ったサーバにも同時にアクセスしてアクセス頻度を証明するログを取る(v6共有IP巻き添え捜査対策)
何らかの理由で訴えられたとき勝つための材料を集めておく
などの方法を教えてくれる書籍がないかと探しています
0861デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:46:54.79ID:BxqtlgPJ
.netだとtempのファイル名を持ってくるメソッドがあったな。
個人用途でリネーム中に他人がファイル名を変更するという懸念がない条件ならランダム英数字の中間ファイル名を経由してリネームすればいいんじゃない?
企業ユースとかでしっかりやる必要のある処理かつリネーム中の障害とかまで考えるなら安直なリネームは処理中の状態が不安定だから禁忌だと言われるね。
ファイルコピーすると同時に名称変更してリネーム後のファイル群を作り完成したところで元ファイルを削除みたいな動作にする。
(もちろんスピードやディスク容量とかの要件とも相談)
0862デフォルトの名無しさん
垢版 |
2021/09/18(土) 09:56:28.76ID:dDlDUvsj
対象フォルダにtmpフォルダ作ってそこにリネームして入れていけばいいんじゃ
0863デフォルトの名無しさん
垢版 |
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を付加したファイルを、目的のファイル名にリネームしてる
0864デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:04:11.39ID:bA/qQPAi
>>857
000.txt -> 1.txt -> 2.txt -> 3.txt -> ... って無限に繰り返す危険は0と言い切れる?
0865デフォルトの名無しさん
垢版 |
2021/09/18(土) 10:44:49.91ID:2a7FPWkS
>>863
あーそうか…
じゃあexistsのときはunique_suffix付きでリネームして
最終的にケツ削る感じにします
uuid知らなかったんですが、いいですねこれ
今回は259文字制限下なのでアレだけど勉強になりました
0866デフォルトの名無しさん
垢版 |
2021/09/18(土) 12:17:29.33ID:9Dfq3hh+
>>865
ちなみに、existsするのがフォルダだった場合処理できないよ
2.txtみたいな名前のフォルダ・・・
0867デフォルトの名無しさん
垢版 |
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 を調べている
0868デフォルトの名無しさん
垢版 |
2021/09/18(土) 13:56:07.34ID:LBCfu3j9
どの本にも〜とか言う割に本は挙げないのな
0869デフォルトの名無しさん
垢版 |
2021/09/18(土) 15:25:34.95ID:ZDaB5e5K
selenium(ChromeDriver)で
すでにbuttonのWebElementまで取得している状態で、単にそれがクリック可能になるまで待つときはどう書けばいいの?
イメージは↓こんなだけどWebElementは引数に与えられないみたい。
WebDriverWait(driver, 5).until(
EC.element_to_be_clickable(button)
)
0871デフォルトの名無しさん
垢版 |
2021/09/18(土) 15:58:23.33ID:9lUPAjpA
ある条件を満たした時にプログラムを再起動したくて
subprocess.call(__file__, shell=True)
と記述してるんですが挙動がおかしいです
どうおかしいのかと言うと、プログラムを強制終了したい箇所で
sys.exit()
と記述してるんですが、そこでも再起動されてしまいます
どう改善したら良いでしょうか
0872デフォルトの名無しさん
垢版 |
2021/09/18(土) 16:03:37.86ID:ZDaB5e5K
>>870
WebElementオブジェクトからlocarorって取得可能?
今回のbuttonが、findで一意に特定できないエレメントだから、Waitの例でネットによく書いてあるBy.xxxの書き方だと、複数のbuttonがWaitの対象になってしまうんだよね
特定の1つのエレメントだけをwaitの対象にしたいのだが
0873871
垢版 |
2021/09/18(土) 16:03:39.53ID:9lUPAjpA
>>871の補足です
subprocess.call(__file__, shell=True)
で、一度再起動した後で、
sys.exit()
を実行すると、強制終了しないで再起動してしまう挙動を何とかしたいということです
0876デフォルトの名無しさん
垢版 |
2021/09/18(土) 18:13:33.17ID:J85RgKD5
頭のおかしい人に以下のようなことを言われました

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

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


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

どこでそんなルールが決まっているのでしょうか?
0879デフォルトの名無しさん
垢版 |
2021/09/18(土) 18:54:45.08ID:+/kaLHzE
>>876
> どこでそんなルールが決まっているのでしょうか?
決まってないよ
ただ普通の頭持ってたらマルチポストが回答者に失礼だと言うことはわかるはず
0883デフォルトの名無しさん
垢版 |
2021/09/19(日) 15:05:50.16ID:snblcpQq
>>882
なるほど、カスタム待機条件というのがあったか。
これでエレメント引数にした待機できた。ありがとう
0884デフォルトの名無しさん
垢版 |
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

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

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

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

これはその通りで、基礎的なことは全部ネットに無料で落ちているので、わざわざ本を買う必要はない。
本で学ぶのが好き、って人もいるだろうから全否定するつもりはないけど。
0895デフォルトの名無しさん
垢版 |
2021/09/23(木) 15:24:28.97ID:Hq81xlZ0
>>888
LAMP(Linux,Apache,MySQL or MariaDB,PHP or Perl)のPがPythonに移行されつつある
DBの方もPostgreSQLに変わりつつある
0899デフォルトの名無しさん
垢版 |
2021/09/23(木) 15:55:26.37ID:Sp5Iyysf
いまさらPostgresが主流になるような感じはしないがな。
DBMS全体でPostgresのシェアは上がってきているがMySQLも同様にシェアを拡大している。
そもそも普及率が倍くらい違うし。
0902デフォルトの名無しさん
垢版 |
2021/09/23(木) 16:20:47.11ID:/gKnAjHi
postgreSQLは最近覚えたけどそこまでメリットは感じない
pythonから叩くにあたってmysqlから面倒くさい部分は増えた
0903デフォルトの名無しさん
垢版 |
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'

となるのはなぜですか?
0904デフォルトの名無しさん
垢版 |
2021/09/23(木) 18:00:58.85ID:3iEJN86R
インタープリターに入らずにpip install sympyだって前ここで誰かが言ってた気がする
0910デフォルトの名無しさん
垢版 |
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 をなんとかしたい
0911デフォルトの名無しさん
垢版 |
2021/09/24(金) 00:17:26.60ID:wqDlteq1
>>867
レス遅れてしまい申し訳ありません
時間つくっていくつか書籍を立ち読みしてみましたが
訴えられる前提でスクレイピングする本は当たり前のようにありませんでした
テストサーバでプログラム作ってから、相手に連絡した上で動作させるのが最低限のマナーで
あとはもう自分で創意工夫して逮捕防ぐしか無いですね
0912デフォルトの名無しさん
垢版 |
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に修正したら繋がるようになった。
0914デフォルトの名無しさん
垢版 |
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行ずつ比較しないといけないのでしょうか?
0917デフォルトの名無しさん
垢版 |
2021/09/24(金) 09:29:05.87ID:sjjiTDvK
>>915-916
後出しみたいになって申し訳ありません。
update試しましたが、同一行を置き換えるのですね。

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

df_NEW
 商品名 価格 種類
0 スイカ 150 野菜
1 バナナ 120 フルーツ
2 トマト 130 野菜B
0918デフォルトの名無しさん
垢版 |
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から追加するという方法でも良い?
0919デフォルトの名無しさん
垢版 |
2021/09/24(金) 09:38:42.26ID:sjjiTDvK
>>918
わかりづらくてすみません。
・OLD側に同じ商品名があればNEWの内容で更新。
・ NEWにしか無い商品はOLDに追加です。
0920デフォルトの名無しさん
垢版 |
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
0921デフォルトの名無しさん
垢版 |
2021/09/24(金) 09:46:08.06ID:sjjiTDvK
>>920
ありがとうございます。なるほど、そっちの考え方の方が良さそうですね。
ちょっと試してみます。わからなかったらまた質問させてください。
0922デフォルトの名無しさん
垢版 |
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
0923デフォルトの名無しさん
垢版 |
2021/09/24(金) 10:16:10.57ID:sjjiTDvK
しかし希望する結果は以下のとおりです。
この様にしたい場合どうしたら良いのでしょう?
df_New2**************************************************
商品名 価格 種類
0 スイカ 150.0 野菜
1 バナナ 120.0 フルーツ
2 トマト 130.0 野菜B
3 人参 50.0 野菜C
0925デフォルトの名無しさん
垢版 |
2021/09/24(金) 10:34:25.61ID:KibxKmAg
日本語で仕様が決まったらまたご相談くださいって感じかな。
その場合はこうして欲しいってのがコロコロ変わりそう。
0926デフォルトの名無しさん
垢版 |
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' だけが取得されるのでしょうか
0928デフォルトの名無しさん
垢版 |
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 については (?:) を使用するんでしょうか?
(?:) という記法についてまだ知らないので調べてみます

レスありがとうございました
0929デフォルトの名無しさん
垢版 |
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”で終わる列とかで指定できるのでしょうか?
0930デフォルトの名無しさん
垢版 |
2021/09/24(金) 12:12:56.73ID:/f3Q922M
>>923
それだったら、同じ商品名のデータを上書きするっていう考え方じゃなくて、
oldだけに有ってnewに無いデータだけ抽出して
それをnew側のdfにくっ付けるってやり方があるかな

一応、想定通りには動くけど
大分不細工なやり方になっちゃったから許して……
https://ideone.com/oxdsR3
0931デフォルトの名無しさん
垢版 |
2021/09/24(金) 12:23:17.91ID:sjjiTDvK
del_old_df = old_df[old_df["商品名"].isin(new_df["商品名"])]
こんなこともできるんですね。ありがとうございます。
こっちの方がてっとり早いですね。
0934デフォルトの名無しさん
垢版 |
2021/09/24(金) 17:01:28.66ID:ZghczHx7
ファイルの最後の行に
return 1
と書くと、「SyntaxError: 'return' outside function」
というエラーが出てしまいます
ファイルの最後の行に書く必要はないってことですか?
0936デフォルトの名無しさん
垢版 |
2021/09/24(金) 17:06:17.94ID:ZghczHx7
関数の最後の行には書くのに
ファイルの最後の行に書いちゃいけないのは何故ですか?
0941デフォルトの名無しさん
垢版 |
2021/09/24(金) 19:58:52.71ID:cH5BLcev
もしかして

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

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

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