Pythonのお勉強 Part68

■ このスレッドは過去ログ倉庫に格納されています
2022/09/15(木) 18:52:26.67ID:VqLViKoX0
!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のソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
http://mevius.5ch.net/test/read.cgi/tech/1653225908/

〇前スレ〇
Pythonのお勉強 Part67
https://mevius.5ch.net/test/read.cgi/tech/1653540315/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2022/10/03(月) 10:54:58.28ID:qHW/WFxU0
>>192-194
最初に調べるキーワードが出てこなくて分からないことが多いので情報助かります
頂いた情報を元に解決する方向でやってみます。ありがとうございました。
196デフォルトの名無しさん (スフッ Sd1f-0H1b)
垢版 |
2022/10/03(月) 10:55:37.39ID:S1BqvHYWd
>>169
>>173
複素数や四元数を使うのが割りとマジでお薦め
2022/10/03(月) 11:05:12.96ID:zOLlU4yCa
オイラーをほめたたえよ
2022/10/03(月) 18:00:29.25ID:pcuzjq2H0
>>188
Ruby, Selenium でも、JavaScript を使って出来たけど、

ソースコードの何かの単語がブロックされるので、
ここには貼れないので以下へ

https://jsfiddle.net/w3anscm6/
2022/10/03(月) 18:09:52.15ID:wCVa7NBkM
>>198
どーゆーこと?
2001 (テテンテンテン MM7f-kE2G)
垢版 |
2022/10/03(月) 22:09:32.24ID:yB/cj66NM
質問です
以下のプログラム(wikipediaの今日は何の日)をエクセルで起動させたときに最後の年号の()が取れてないとおかしいのですがどこのコードが間違っていますか?
優しい方教えてください

import requests
from bs4 import BeautifulSoup
import csv
import re

url="https://ja.wikipedia.org";
response=requests.get(url)
soup=BeautifulSoup(response.content,"html.parser")

top_entry=soup.find("div",attrs={"id":"on_this_day"})
entries=top_entry.find_all("li")

today_list=[]

for i,entry in enumerate(entries):
today_text=entry.get_text().replace("(","(").replace(")",")")
match=re.search("\(([1-9].*?)年\)", today_text)
if match:
today_list.append([i+1, entry.get_text(),match.group(1)])
else:
today_list.append([i+1, entry.get_text()])

with open("output.csv", "w", encoding="Shift_JIS") as file:
writer=csv.writer(file, lineterminator="\n")
writer.writerows(today_list)
2011 (テテンテンテン MM7f-kE2G)
垢版 |
2022/10/03(月) 22:11:29.02ID:yB/cj66NM
何度も本(スクレイピング・ハッキング・ラぼ)見返したけど間違ってないんです…
2022/10/03(月) 22:13:35.20ID:WjbJBDxU0
漢字コードとか?
2022/10/03(月) 22:15:49.89ID:phcGwi7g0
とりあえずこれに聞こうぜ
https://aiprogrammer.hashlab.jp/
2022/10/03(月) 22:28:30.42ID:cMmfYMlm0
お願いします
https://ideone.com/vADQwg

for i in range(1, 100) で 99 回 next を呼んでいるのに、なぜ 79 で終わってしまうのですか?
2022/10/03(月) 22:28:53.24ID:fB4Oth8WM
>>203
すげぇこんなのあるんだ

でも解決しなかった(´・ω・`)
2022/10/03(月) 22:36:32.61ID:Hgv/NPoj0
>>204
n=15のときFizzBuzz Fizz Buzzの3つ表示されます
2022/10/03(月) 22:54:57.92ID:phcGwi7g0
これでいけそうですが、どうでしょうか

1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を表示する
2022/10/03(月) 22:58:18.22ID:phcGwi7g0
修正した

1から100までカウントして、15で割れたらFizzBuzzと表示して、5で割れたらBuzzと表示して、3で割れたらFizzして数字を文字列で表示する
2022/10/03(月) 23:01:03.63ID:cMmfYMlm0
>>206
elif にするべきだったんですね!ありがとうございます!
210デフォルトの名無しさん (ワッチョイ bfbd-vqPj)
垢版 |
2022/10/03(月) 23:48:34.11ID:DL3YHdAw0
ウェブスクレイピングをやってみたくて奮闘しておりますが、CSVへの書き込み時にエラーがでます
どう改善すればよいかわからず困っています。助けてください。

おま環(Python 3.9.12+Windows10+VScode)
【コード】
for a in soup.find_all('a'):
link = a.get('href'), a.text
link.to_csv('link.csv')

【エラー】
link.to_csv('link.csv')
AttributeError: 'tuple' object has no attribute 'to_csv'
211デフォルトの名無しさん (ワッチョイ c333-pIDl)
垢版 |
2022/10/04(火) 00:31:15.23ID:QZmM2iut0
>>210
https://pastebin.com/pa33f4Mb
2022/10/04(火) 06:25:16.21ID:UhX37WNP0
>>203
Python
Tuple to dataframe
で聞く
2022/10/04(火) 06:51:23.40ID:jZxsvBQn0
https://aiprogrammer.hashlab.jp/
ウェブスクレイピングで、aタグを取得し、そのaタグをcsvファイルに出力するコードを作成してください。

import csv
from bs4 import BeautifulSoup

with open("sample.html") as f:
soup = BeautifulSoup(f, "html.parser")

csv_file = open("output.csv", "w", encoding="utf-8")
writer = csv.writer(csv_file)

for a in soup.find_all("a"):
writer.writerow([a.text, a.get("href")])

csv_file.close()
2022/10/04(火) 22:24:51.48ID:fseuENfmM
知恵袋にも質問したのですがどなたか教えていただけると嬉しいです


https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14269053849
215デフォルトの名無しさん (ワッチョイ bfbd-vqPj)
垢版 |
2022/10/04(火) 22:40:41.78ID:g6GmefYL0
>>211 213
丁寧に教えてくださりありがとうございます。
2022/10/04(火) 23:17:10.94ID:CNGS9dK70
>知恵袋にも質問したのですが

5ch はマルチポスト禁止です!
5chで質問する場合は、他での質問を取り消してからにしてください
2022/10/04(火) 23:19:23.00ID:NeQlYRE40
んなこたーない
2022/10/04(火) 23:24:09.71ID:4YJ9syiq0
さすがにインストールできてないのは答えようがない
2022/10/04(火) 23:28:30.56ID:IUIBMeejH
>>216
fj ではマルチポスト禁止の理由がありクロスポストという代替があったけれども、ここでのマルチポスト禁止の理由は?
2022/10/05(水) 00:22:21.08ID:Tx2gHWm/0
せっかくの集合知が分散するからじゃないの?
2022/10/05(水) 00:31:43.32ID:rm6FRUcS0
マルチ野郎はよそで解決しても報告しない
放置してそこら中にゴミを残す
222デフォルトの名無しさん (ワッチョイ cf10-1pq4)
垢版 |
2022/10/05(水) 00:40:43.93ID:93gtHac60
ぶっちゃけスレは落ちて過去ログになるし
検索性も低いから集合知の蓄積なんてしないよ
マルチポスト禁止は形骸化した旧きネチケットだと思う
2022/10/05(水) 00:56:27.52ID:Tx2gHWm/0
>>222
いやぁそうでもないと思うけどねぇ
2ちゃんねるの過去ログをあさって解決方法を見つけたことも数多あるし
解決できない場合でも、ヒントになるようなことが散らばっていて、それをきっかけに探し出せることもある
検索のやり方次第じゃないか?
224デフォルトの名無しさん (ワッチョイ cf10-1pq4)
垢版 |
2022/10/05(水) 01:03:22.70ID:93gtHac60
>>223
調べごとはよくするけど
2ちゃんで解決したことはないな、というか、検索方法によるだろうが出てきすらしない
大体Qiita、個人ブログ、stackoverflowのどれか
2022/10/05(水) 01:12:14.00ID:Tx2gHWm/0
>>224
いまはそうした5ちゃんねる以外の方がまともな完結方法があると思うよ
でも以前は、そういうのがほとんど当てにできなかったり、
*nixやマイナー言語、ハードウェア特有のトラブル、アングラ系wなんかだと、
英語資料を当たるきっかけやヒントが欲しかったりしたので、
2ちゃんねるのちょっとした書き込みがありがたかったなぁ

いまでも、"site:5ch.net" をつけてキーワードをググることで、
5ちゃんねるの集合知はちゃんと機能しているよ
2022/10/05(水) 01:17:40.14ID:j989iulk0
2ちゃんねるに書いてある事を、
そこまで信用したことはないな
あるとすれば、裏が取れたとき位

リンク張ってあっても、あやしげなサイトだったりすることもある
227デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
垢版 |
2022/10/05(水) 01:59:12.01ID:xc1v9MP10
今回みたいに簡単なエラー文も読めねえだけのカスがネット上に散らかることが多く
これが害悪であるのでマルチポスト野郎は基本的にクソである
集合知の分散ではない。無知の飽和が問題
2022/10/05(水) 05:43:38.64ID:FOT9/eKgM
ゴメン 今回の件は全面的に俺が悪い
すみません
2022/10/05(水) 05:45:37.15ID:FOT9/eKgM
>>227
エラー文のseleniumは既にインストール済だぞ
2022/10/05(水) 05:51:53.98ID:FOT9/eKgM
>>218
seleoniumはインストール済だよ
pip install selenium でね
2022/10/05(水) 06:08:56.11ID:Vke5X/wtM
Pythonが複数バージョンインストールされてるってオチじゃないの
よくあるAnacondaどうこうってやつ
2022/10/05(水) 06:09:13.82ID:FOT9/eKgM
selenium一度アンインストールして再度インストールしたら出来ました

スレ汚しスマン
2022/10/05(水) 06:11:17.00ID:FOT9/eKgM
>>231
朝早いですね!

再インストールしたら出来るようになりました
何故か知らないけど……

……というより勝手にブラウザが開いて閉じての動作を見た時は感動しました

すげー勉強する意欲が増した
2022/10/05(水) 06:57:09.88ID:wne70pEz0
>>219
マルチポストされると同じようなレスを複数回読むハメことあるし回答したら他のスレで既に解決してたとかあるからそりゃうざいわってことだろ
ちなみにクロスポストはたいていのリーダーでどれか一つ読めば他のグループへの投稿も既読になるし回答する際もディフォルトの回答先グループが指定できるから回答が散らばることも防げる
235デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/05(水) 18:42:25.05ID:8ltN7Y6y0
原神スレかpythonスレかで迷ったんですけど、ちょっと失礼します。
https://github.com/shrubin/Genshin-Artifact-Rater
ディスコbotがサ終してたのでありがたくオフ環境に導入すべく頑張ったんです。

setupの手順から一通り終えてpy bot.py後なんですが
raise ValueError("Duplicate keys!")の無間地獄にはまってるんですけど
列行文でエラー指摘されてチェックしても全然関係無さげでわからない時どこ見たらいいですか?。

やっぱり基本を熟知してる人は修正して当たり前な場所とかを理解できてなくてエラー起きてるんですよね。たぶん。。
詳細足りなさすぎるのは理解してるんですけど、ほんと憶測適当アドバイスでいいので教えて下さい。
2022/10/05(水) 22:24:23.68ID:MbZCvQpZ0
>>220
それが理由だとしたらそもそも質問できる場が複数存在していて統一されていないことが悪いってことになる。
2022/10/05(水) 23:32:03.75ID:W5I+dJQy0
>>235
Duplicate keys! って、

データベースのUNIQUE インデックスまたは PRIMARY KEY に、
既に存在する同じキーで挿入しようとしたとか?

そのGithub のbot.py 内を「Duplicate」で検索しても、見当たらないけど?
どのファイルのソースコードなの?
238デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/06(木) 01:46:24.04ID:eDAszKmt0
>>237

bot.py実行後に、~\Programs\Python\Python38-32\Lib\site-packages\toml
内のpython38-32のdecoder.pyからエラーが出てます。
powershellを使いました。 ほぼ素人ですみません。
2022/10/06(木) 02:48:03.34ID:2LM4DEsy0
コードじゃなくて食わせるデータがおかしいんでないの
240デフォルトの名無しさん (ワッチョイ c32c-Kmz1)
垢版 |
2022/10/06(木) 03:52:44.67ID:mL002h1/0
>>238
python入門おめでとう!
2022/10/07(金) 05:27:45.05ID:TBR3DhbF0
「python toml decoder duplicate keys」で検索!

TOML ファイルの形式になっていないとか?

ファイルがBOM付きUTF-8 になっているとか?
Python は、BOMなしUTF-8 じゃないの?

https://git.cardiff.ac.uk/c2021544/blogg/-/blob/abf082d45bcacad0728c2a03e91baf103046eba9/venv/lib/python3.6/site-packages/pip/_vendor/toml/decoder.py

このファイルの781, 783 行目に、raise ValueError("Duplicate keys!") がある
242デフォルトの名無しさん (ワッチョイ 7f73-8eI1)
垢版 |
2022/10/07(金) 07:11:32.41ID:0vlnX2v40
>>241
UTF-8になってました。
ValueError: Duplicate keys!とTomlDecodeError: Duplicate keys!が出ていますが
デコードが実行された結果キー重複が起こっているのを知らせただけで、原因はやはりbot.pyの中にあるのでしょうか?
2022/10/07(金) 09:55:21.23ID:BuUd5Oey0
>>242
tomlでエラー出てるなら
bot.pyで
config = toml.load(open("config.toml"))
っていう記述あるけど、config.tomlの中身がおかしいんじゃない?
2022/10/07(金) 13:38:21.48ID:6W+GCvSh0
Traceback (most recent call last):
File "test.py", line 31, in <module>
func1()
File "test.py", line 28, in func1
func2()
File "test.py", line 30, in func2
raise Exception("hogehogeException")
Exception: hogehogeException

こういうファイル名や行数とか出てないの?
2022/10/07(金) 19:08:20.49ID:Z2W6Vqfk0
pyautogui素晴らしい最初に知りたかった
2022/10/07(金) 20:11:45.22ID:f7Qxxz6p0
ぴゃうとぐい
2022/10/07(金) 23:54:53.64ID:cLCpsl3k0
TOML のValidator で、TOMLファイルの形式が正しいかどうか、チェックすれば?
「toml validator online」で検索!

プログラマーなら、VSCode で、〜/toml/decoder.py をデバッグするとか、

decoder.pyを差し替えて、
raise ValueError("Duplicate keys!") の前後で、ログ出力してみるとか
2022/10/08(土) 07:10:23.20ID:kX9hT5zA0
PyAutoGuiも便利だけど何でもできるかというとかなり限定的

画面がこういう状態になったらこの条件に合う部分を探して、
この範囲をコピーしてこのアプリに切り替えてコピペ
みたいなことはできない
2022/10/08(土) 07:26:14.47ID:Qqe7/SLY0
ディスプレイを切ったら動かないのも使いづらい
2022/10/08(土) 11:25:58.24ID:TDMvIP2Ta
ライブラリ関数の情報を調査する方法についての質問です
sagemathというpython wrapperにあるpolygon3dという関数がどういうキーワード引数を持っているのか調べたいのです
ググるとinspect.signature関数というのが見つかります
コレでpolygon3dを調べてみると
signature = inspect.signature(polygon3d)
print(signature.parameters)

OrderedDict([('points', <Parameter "points">), ('options', <Parameter "**options">)])
と出ます
おそらく位置引数'points'とキーワード引数がいくらかあるという意味だと思うのですがやはりコレが限界なんでしょうか?
どんな名前のキーワード引数を持ってるかの一覧表を出力するような方法はないもんなんでしょうか?
251デフォルトの名無しさん (ワッチョイ de10-XciQ)
垢版 |
2022/10/08(土) 12:37:16.55ID:ymJkU01o0
>>250
オープンソースなんだからGitHubに見に行けばいいじゃん
2022/10/08(土) 14:49:02.11ID:hw6LN7oLa
>>251
そうなんです
実際sagemathは割とドキュメントもしっかりしててググれば一覧とかもあります
でもいちいちめんどくさいじゃないですか
もしかしたら各オプジェクトで利用可能なキーワード引数のリストを得る方法とか容易されてたら便利でいいなぁと
結構ググったのでなさそうではあるんですけど、調べて「あった」場合はともかく「ないなぁ」の場合、やはり最終的には強者に聞いてみないとダメかなと
2022/10/08(土) 15:06:18.06ID:lWG3uN0c0
ドキュメントをぶっこ抜いてその関数がどんな引数とるかのポップアップをエディタで出せばいい
2022/10/08(土) 15:13:56.04ID:bWQzA1rj0
pyautogui
エラー出さずにできましたが最適ではない気がします
下記のやり方より良い方法があれば教えて欲しいです


pyautogui.write() でエクスプローラーのアドレスにパスを打ち込む時
日本語や \ が入力できなかったり、最初の C: が C* に勝手に変わったりしました
・pyperclip を使って値をコピーしてから、pyautogui.hotkeyで貼り付けました


pyautoguiを使って検索したりクリックしたりする時
・画像認識してから次の処理する時は、while pyautogui.locateOnScreen() is None: で time.sleep(1) させて
・検索結果表示とか全選択とか、少し時間がかかりそうな箇所は逐一改行して「time.sleep()」を書きました
これを書くのが結構あってcodeが余計に長くなりました
2022/10/08(土) 15:27:35.37ID:bWQzA1rj0
pyautogui 便利だけどマウスとモニターが使用不可になるのだけは面倒でした
下のソフトの処理ができるなら別のもので構わないのですが、pyautogui以外でやってる人がいたら教えてください

・Adobe Acrobat
・Evernote ※Legacy版
・ソシャゲ全般(デイリー回収用)
2022/10/08(土) 15:49:00.05ID:kX9hT5zA0
ahkで簡単なことはやらせてる
python化されたahkがあればいいのにと思っている
2022/10/08(土) 15:57:12.38ID:IpF+MZYD0
ahkって何?
2022/10/08(土) 16:00:09.87ID:xEoQJfh1M
sleepが面倒なら画像名を指定するだけで待ち&クリックする関数を作れば良いんでない
バックグラウンドでの使用は、昔VPCを多重起動して使ってたことあるけど今でも出来るんかな
昔、某MMOでプロセスメモリの内容を読み取って動くマクロとか作ったけど
プロセスメモリが読めればエスパーなマクロが作れるよ
2022/10/08(土) 20:40:05.22ID:bWQzA1rj0
>>258
それでやってみます
ゲームに使えるならプロセスメモリもその内手を出しそうです
2022/10/09(日) 00:21:51.03ID:t9JKJStV0
>>252
VSCode, Ruby では拡張機能で、関数の説明なども見れる

また端末から、そういうコマンドを実行しても見れるけど、
ブラウザで見た方が見やすいので、
一旦コマンドで説明をHTML ファイルにしてから、それをブラウザで見て、
見た後に、HTMLファイルを削除する。
これが自動で行われる

ただし、その関数・モジュールの作者が、
Doc コメントみたいな決められた様式で、コメントを書いている場合のみ

たいてい、Doc コメントの説明などは、
パーフェクトRuby などのパーフェクト・シリーズ本に書いてある
2022/10/09(日) 04:21:23.14ID:L81MTKQk0
クリップボードにpathlibのPathで指定した、不特定多数のファイルをコピーをしたいのですが方法が分かりません
コピーするファイルは、フォルダー・テキスト・画像・動画・PDF関係なく、PC上で選択してCtrl+Cできるファイル全てが対象です

pyautogui.hotkey(“Ctrl”,”v“) を使って貼り付ける予定です。※Evernote Legacyというメモアプリ上で使いたい

pyperclip、shutil、pillow関連の記事は見つかるのですが、クリップボードに複数・拡張子問わずコピーする方法が見つかりません
どうすればできるのか教えてください
2022/10/09(日) 04:59:04.96ID:L81MTKQk0
今のところPathにあるファイル名いじって、検索かけてから全選択して、pyautogui.hotkeyでコピーするという遠回りなやり方でしてみました
2022/10/09(日) 11:51:56.93ID:xdRBYpSIM
FileDrop形式に変換できれば良いんだろうけどパッと検索してみた限り難しそうだね
VSを使ってクリップボードを監視してファイル名が含まれていたらFileDrop形式に変換するアプリを自作するか
コピー用のtempフォルダにファイルを一旦コピーしてから全選択→貼り付けとかでも良さそう
2022/10/09(日) 16:29:09.15ID:L81MTKQk0
>>263
FileDrop形式という単語を知れただけでも良かったです。ありがとうございます
265デフォルトの名無しさん (ワッチョイ cb63-rqSc)
垢版 |
2022/10/09(日) 20:19:39.13ID:nf8IBTFd0
chm形式のヘルプが3.7までしか野良に無いんだけど、3.10(stable)のchmどこかに無い?
公式はDLしたいけど404でオンラインでしか参照できなくて困ってる
2022/10/09(日) 20:45:08.96ID:Ozrjh9EB0
>>265
公式にpython3107.chmあるし、落ちてくるよ
267デフォルトの名無しさん (ワッチョイ cb63-rqSc)
垢版 |
2022/10/09(日) 20:53:03.75ID:nf8IBTFd0
>>266
すまん、日本語版希望。。。
githubに3.7jpビルドしてる人の使ってる
2022/10/09(日) 23:28:35.38ID:t9JKJStV0
>>261
漏れは、Ruby で、drag&drop での複数ファイルの移動処理を作ったけど、
これはファイルのみに適用される。
フォルダの再帰的コピーも出来るみたい

require 'fileutils'

dest_dir = "C:/Users/Owner/Documents/tmp/"

# ARGV は、ドロップした複数のファイルパスの配列
ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
file_name = File.basename( full_path ) # ファイル名のみ

FileUtils::DryRun.move( full_path, dest_dir + file_name)
end

sleep # 出力したコマンドプロンプト画面を閉じないようにする
2022/10/11(火) 09:09:33.80ID:L++CLq2X0
すみません、jupyter labで下記のように記述して実行したんですが、エラーでサイトが開きません。原因わかる方いらっしゃいませんか?
url = ''https://telegram.org/''
browser.get(url)

エラー内容
NoSuchWindowException: Message: no such window: target window already closed from unknown error: web view not found

browser.getをdriver.getに変えて試してもみましたがダメでした。
urlについてはサイトに飛べることをurlクリックで確認しました。
2022/10/11(火) 09:22:50.72ID:S+x+TbIN0
エラーメッセージの内容を切り分けて質問しろよ

エラーの原因はすぐわかるだろ
web view not found

まぁ、こんな状態でスクレイピングとかアホかって感じだけど
2022/10/11(火) 09:43:03.84ID:L++CLq2X0
>>270
回答どもでーす
2022/10/12(水) 16:39:03.55ID:+cq2T5fE0
python 3.10.8インストールしようとしたらエラー出る

こういうやつな
https://pullanswer.com/questions/python-3-10-8-amd64-exe-fails-with-access-is-denied
2022/10/12(水) 16:41:57.24ID:Q9qje2Sc0
ご愁傷様
2022/10/13(木) 13:50:28.26ID:uklwGmra0
>>272だけど今試したら3.10.8インストール出来た
https://www.python.org/ftp/python/3.10.8/amd64/ のフォルダの属性設定を間違えてたらしい

よって>>273は昨日の時点ではインストールしてないとすぐに分かるんだね
2022/10/13(木) 18:02:26.26ID:SD2zWMPC0
import pandas as pd
df = pd.DataFrame(
[[10,"a", True],
[20,"b", False],
[30,"c", False],
[40,"d", True]])
#というデータフレームを定義したとして、0列目、2列目を独立して処理したとします
#これを最終的に結合したいのですが、
a = pd.DataFrame(df.iloc[:,0],df.iloc[:,2])
# というようにすると
0 1
0 10 True
1 20 False
...
というデータフレームではなく、
0
2
True NaN
False NaN
False NaN
True NaN
というデータフレームになってしまいます。なんで欠損値になってしまうのか
わからないのですが、求めるデータフレームを作るにはどういう結合方法をとればいいでしょうか。ちなみに、
p=df.iloc[:,0]
に対して
p["A"] = df.iloc[:,2]
という方法は、pがSeries型なので取れないです。一旦Series型にして取り出してから処理して結合させたいのです。どうすればいいでしょうか。
2022/10/13(木) 18:15:58.69ID:rU12tc+I0
んちんちん
2022/10/13(木) 18:37:05.73ID:1c9Wc9kf0
pandas詳しくないけど
a=df.iloc[[0,2]]で出来たお
2022/10/13(木) 18:44:41.46ID:7YLMS5Bz0
pandasはそれだけでスレ作ってもいいくらい複雑で深いな
2022/10/13(木) 19:07:19.22ID:ZrA3PYH80
二重のforループ抜けるときフラグを使ってるんですけどもっとかっこいいやり方ありますか?
for i in range(10):
flag = False
for j in range(10):
if hoge[i][j] == fuga:
piyo()
flag = True
break
if flag:
break
2022/10/13(木) 19:21:12.59ID:glAi4q7Na
二重ループを使わない
281デフォルトの名無しさん (ワッチョイ de10-bGEg)
垢版 |
2022/10/13(木) 19:23:22.28ID:0KS7pmji0
for-else

for i in range(10):
__for j in range(10):
____if condition:
______break
__else:
____continue
__break

例外

try:
__for i in range(10):
____for j in range(10):
______if condition:
________raise Exception
except:
__pass

他には関数にして脱出はreturnとか
2022/10/13(木) 20:02:02.53ID:PAZSTe6jM
検索ならin演算子を使って1ループに出来そう
for i in range(10):
if fuga in hoge[i]:
print("piyo")
break

他にはnumpyのany使うとか
def is_contain(l, data):
a = np.array(l)
return np.any(a==data)
2022/10/13(木) 20:03:15.66ID:QL8so1O30
よほどのクリティカルなイシューが解決されたのでなければ
アップデートされたからと言って、慌てて入れないもんだよ
2022/10/13(木) 20:15:24.40ID:SD2zWMPC0
>>277
一回それぞれ個別のSeries型を抽出してからくっつけたいんです。
2022/10/13(木) 20:24:16.77ID:SD2zWMPC0
わかりました。Series型だと追加できないので一回一列だけのDataFrame型に変換すればいいみたいです。

a = pd.DataFrame(df.iloc[:,0])
そのあと、列追加で
a.loc[:,"new column"] = df.iloc[:,2]
とやれば追加できました。
2022/10/13(木) 20:32:37.12ID:1c9Wc9kf0
こうかな
a = pd.DataFrame([df.iloc[0, :], df.iloc[2, :]])
print(a)

numpyになると[行, 列]になってややこしくなるのを思い出した
2022/10/13(木) 20:43:16.18ID:ZrA3PYH80
>>281
breakしたらelse飛ばす挙動は知らなかったです
ありがとう
2022/10/13(木) 20:45:51.49ID:1c9Wc9kf0
l = list()
l.append(df.iloc[0, :])
l.append(df.iloc[2, :])
a = pd.DataFrame(l)
print(a)

見やすくするならこうやね、勉強なるわ
2022/10/13(木) 21:15:44.80ID:Tqa4ZL2z0
>>274
WSL2+Docker使ってるからな
実機には入れない
2022/10/13(木) 21:37:50.04ID:vk/pladO0
>>281
その三択なら読みやすさ的に
関数にしてearly return一択だと思うんだけどなぁ
2022/10/13(木) 23:54:28.43ID:rU12tc+I0
んチンチンンンンンンン
2022/10/14(金) 01:29:03.54ID:0UzEEAJh0
>>286
行・列逆
2022/10/14(金) 05:44:04.16ID:WQ3ra/reM
>>292
ごめん文盲やったわ
2022/10/14(金) 05:58:04.32ID:CNXM2/Lz0
sr1 = df.iloc[:, 0]
sr2 = df.iloc[:, 2]
a = pd.DataFrame({"0" : sr1, "1": sr2})
print(a)

辞書型で登録
今度こそどや
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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