くだすれPython(超初心者用) その47【Ruby禁止】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/03/07(土) 00:40:52.77ID:k5ibAr7h
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
☆「Ruby では」「Rubyでは」をNGワード登録推奨

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

★Pythonのソースコードはそのまま5ちゃんにコピペするとインデントが崩れるので
  ↓等のてきとうなソースコード用うpろだに貼ってきてください。
  スクショをImgur等にうp といった 手抜き(クソ行為)禁止。
ttp://ideone.com/      デフォ設定はC用のため言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう

◆エラーを解決したい場合は、表示されてるエラー全文(勝手に省略禁止)と
  実行環境(Pythonのバージョン・OS名・IDEの種類とバージョン)をシッカリ書くこと。

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

〇前スレ〇
くだすれPython(超初心者用) その46【Ruby禁止】
https://mevius.5ch.net/test/read.cgi/tech/1577948214/
2020/03/25(水) 22:46:13.13ID:mIdHRgzi
>>240
プログラムに組み込んでパイプで渡したいだけなら何もする必要はない

python -c "import sys; sys.stdout.write('AA\x12\x34')" | hexdump -C
結果
00000000 41 41 12 34 |AA.4|

コマンドライン引数でこの文字列を受け取った上で別のプログラムに渡す場合は、自分で作らないとない

python -c "import sys; sys.stdout.write(sys.argv[1])" "AA\x12\x34" | hexdump -C
結果
00000000 41 41 5c 78 31 32 5c 78 33 34 |AA\x12\x34|

\x12がH'12の1バイトではなく、H'5c783132の4バイトとして評価される
2020/03/26(木) 21:17:50.96ID:jt2f7/Y4
def file_open():
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)

def main():
a=input()
if a!='1':
file_open()

を実行すると、VS CODEのウインドウの下に非アクティブでファイル選択ウインドウが立ち上がります。
ファイル選択ウインドウを再前側でアクティブウインドウとして立ち上げたいのですがどうすればいいのでしょう?
2020/03/26(木) 21:45:03.06ID:jt2f7/Y4
if文ぬいて

def file_open():
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)

def main():
file_open()

とするとファイル選択ウインドウが最前面にきてアクティブになるんですよね
なんでだろう
2020/03/26(木) 21:49:37.79ID:jt2f7/Y4
ああ、なんとなくわかってきました
input()
を使うと、VS CODEが最前面でアクティブのままロックされて、
そのウインドウの裏でファイル選択ウインドウが開くみたい

input()を使ってこの現象をさける方法ってありませんか?
2020/03/26(木) 22:02:56.82ID:jt2f7/Y4
連投すいません
data_path = fd.askopenfilename(
title="ファイルを選んでください",
filetypes=[("TEXT", "csv"), ("TEXT", "py"), ("HTML", "html")]
)
でファイルを開くときに、選択ウインドウを常にアクティブにする設定があれば教えて下さい

というのが、正しい質問でした
ご存知の方いらっしゃいましたら教えて下さい
2020/03/27(金) 01:28:39.52ID:DFFADnRu
>>245
fd ってのが from tkinter import filedialog as fd なら
tkinter で topmost を指定してあげれば良いんじゃないかな?
https://teratail.com/questions/145112
2020/03/27(金) 23:36:36.81ID:wFQ5Bfhf
>>246

解決しました!!!
ありがとうございます

もうわからないから、
print('この画面を最小化してね’)
とでもしようかと思ってたw
248デフォルトの名無しさん
垢版 |
2020/03/28(土) 22:27:12.81ID:BYkjXtO6
初歩的な質問ですみません。Colaboratory を使ってスクレイピング行っておりURLのみを表示させたいので
get使ったのですがAttributeErrorになってしまいます。
getを使わずa_tagsだけ入力するとエラーにならずに表示されます。
getが使えないのは何が原因なのでしょうか?

import requests
from bs4 import BeautifulSoup

page_url ="https://news.yahoo.co.jp/topics/top-picks";
r = requests.get(page_url)

soup = BeautifulSoup(r.text, features="html.parser")


a_tags = soup.find_all("a", class_="newsFeed_item_link")

a_tags.get("href")
2020/03/28(土) 22:48:46.72ID:+WXFsbEZ
>>248
a_tagsはlistだから
listの各要素に対してget(‘href’)する必要がある
2020/03/29(日) 05:29:29.33ID:8xENdWjm
>>248
Ruby, selenium-webdriver, nokogiri で作ったが、href を取得しようとすると、エラーになる。
sleep 15 して待っても、エラーのまま

要素は存在するけど、JavaScript で動的に、href を作っているのかも。
他から取得するか、クリックするなど、何かアクションを起こせば、作られるのかも

require "selenium-webdriver"
require "nokogiri"

options = Selenium::WebDriver::Chrome::Options.new
driver = Selenium::WebDriver.for :chrome, options: options

driver.navigate.to "http://news.yahoo.co.jp/topics/top-picks";

doc = Nokogiri::HTML( driver.page_source )

css_selector = "a.newsFeed_item_link"
elements = driver.find_elements( :css, css_selector )

results = elements.map { |elem| elem.attr( "href" ) }
puts results

driver.quit
251250
垢版 |
2020/03/29(日) 09:52:13.78ID:8xENdWjm
>>250
は、nokogiri を使わず(doc という変数を使っていなかった)、
selenium-webdriver から取得していたので、

それを、20秒スリープして、nokogiriから取得するように変えたら、25個のhref を取得できた!

require "selenium-webdriver"
require "nokogiri"

options = Selenium::WebDriver::Chrome::Options.new

driver = Selenium::WebDriver.for :chrome, options: options
driver.navigate.to "http://news.yahoo.co.jp/topics/top-picks";

sleep 20

doc = Nokogiri::HTML( driver.page_source )

css_selector = "a.newsFeed_item_link"
elements = doc.css( css_selector )

results = elements.map { |elem| elem.attr( "href" ) }
puts results.length, results

出力、以下が25個
https://news.yahoo.co.jp/pickup/6355533
https://news.yahoo.co.jp/pickup/6355534
252デフォルトの名無しさん
垢版 |
2020/03/29(日) 12:43:01.48ID:4hib/jR0
すいません、ちょっと教えてもらいたいのですが
for x in ...
とかで文字を使っちゃうとまた次のforのときに
またx使うか迷うんですけどどうしてますか?
iみたいに毎回同じ文字使ってますか???
特に短いforがいくつもあるときに悩みます
2020/03/29(日) 12:53:10.19ID:TGQjvlT6
>>252
入れ子になってる等やむをえない事情がないのなら、
新たな文字など使わずに
むしろ
どんどんxなりiなりを再利用したまへ。

「どーでもいい?forループ回すときはいつもiな!」みたいな
俺ルールの徹底は
後日メリットばっかりだぞ。
2020/03/29(日) 13:48:18.09ID:hrvcX8VW
>>252
ループ変数としてしか使わない前提なら可
ループ変数を他の用途に使い回すのは不可
2020/03/29(日) 15:12:01.71ID:QD9LV+eK
ループ内のネストなら昔からi,j,kやな
2020/03/29(日) 15:31:33.32ID:a0L6N7lT
>>254
そのルールでチェックできるlinterってない?

ループの外では使うのは気持ち悪いからやらないけど
セーフガードは持っておきたい
257デフォルトの名無しさん
垢版 |
2020/03/29(日) 15:48:30.19ID:7B/pleQ/
特に用が無いなら for _ in list:
2020/03/29(日) 15:50:29.03ID:TGQjvlT6
>>257
おおお なるほどなっとく!
2020/03/29(日) 15:55:02.48ID:GHALE6C1
私も普通にi、j、k、m、l、nかな
2020/03/29(日) 16:36:34.85ID:TGQjvlT6
>>259
m、lの順序が敢えて逆なのに意味はあるんけ?
2020/03/29(日) 17:20:58.04ID:PlAItnzy
nとmが紛らわしいとか?
2020/03/29(日) 17:25:13.42ID:MKM75DKF
i, ii, iii, iiii
とかやっちゃうな
2020/03/29(日) 17:28:14.26ID:zGVyzuX/
何だこのスレ?bad know how の集合知や〜
2020/03/29(日) 17:41:24.52ID:TGQjvlT6
いいことジャマイカ
2020/03/29(日) 17:43:26.03ID:miu6elf3
特定種類のファイルとかはtext, image, folderとか
それ以外で二重以上だと分かっている時はx,y,z,w
4重ループより複雑な時は実装がおかしい
2020/03/29(日) 18:11:39.59ID:oXSmQy6i
pythonでも高階関数使いまくったらいい感じにスッキリできるんかな
内包表記でええやんってなりそうだな
2020/03/29(日) 18:17:29.94ID:TGQjvlT6
>>265
> 特定種類のファイルとかはtext, image, folder
これもアリでんな

>>262
目が滑るからやめとこうぜ

>>266
ハッシュ・ド・カレーだっけ?www
268デフォルトの名無しさん
垢版 |
2020/03/29(日) 18:27:24.84ID:ZN7+uAYE
目が滑るとかいうワードセンス
2020/03/29(日) 18:43:00.28ID:V/YUnLMr
pythonやるために格安ノートPC買いたいんやけど必要スペックとかある?
2020/03/29(日) 18:50:50.72ID:TGQjvlT6
>>269
一番の問題はHDD容量だとおも。
俺のネットブックはHDDが64GBしかないから
あっぷあっぷしている。
無論CPUは速いほうがいいし、メモリも多いほうがいいのだが。

>>268
んじゃあ
老眼にキツイし、
そも、人間の指は同じキーを何度も打つのは苦手にできてるんだからやめとこうぜ
2020/03/29(日) 19:00:46.18ID:ryRl/n6a
>>265
x,y使うのは座標と分かっているときだけだなぁ。そのときは外側からt,z,y,x,(wかc)
2020/03/29(日) 19:50:47.51ID:wDs4yIM0
>>262
それやるぐらいならi1, i2, i3, …にするわ
273デフォルトの名無しさん
垢版 |
2020/03/29(日) 19:55:01.95ID:BsqKnoOv
>>249
ありがとうございます。使い方が間違っていたんですね。再度調べてみます。
>>250
>>251
ありがとうございます。seleniumでも試す際に参考にさせていただきますね。
2020/03/29(日) 20:59:47.09ID:vjV1ctf5
>>270
アザス
275252
垢版 |
2020/03/29(日) 22:58:26.58ID:4hib/jR0
>>252です
ありがとうございます
自分なりにルールを決めたものを使っていくことにします。
forに変数いらないのあるなんて知らなかったです
助かります
276デフォルトの名無しさん
垢版 |
2020/03/29(日) 23:46:57.95ID:lDauC8R5
>>269
> pythonやるために格安ノートPC買いたいんやけど必要スペックとかある?

格安ノートはわりとすぐに使えなくなる。
無駄遣いになる危険性があるぞ?
PCには金を使え。
もしプログラマやデータサイエンティストになりたいなら。
2020/03/29(日) 23:58:53.69ID:I9YrUVvq
別にクライアントサイドでプログラミングしなくてもいいんでないかい
2020/03/30(月) 00:15:31.86ID:3rsb7aJk
>>276
いまはやり?のビッグデータ解析とか
自然言語だの画像だのをみて、判別してくれるAIにちゃーれんじするなら、
自分のノートのスペックなんかより
ぶっちゃけ、契約するスパコンのスペックががが
2020/03/30(月) 04:15:40.93ID:ZTnAFgeB
>>276
Colaboratory
https://colab.research.google.com/notebooks/intro.ipynb
Azure Notebooks
https://docs.microsoft.com/ja-jp/azure/notebooks/azure-notebooks-overview
オンラインでプログラミングして実行できるサイト
https://qiita.com/tttamaki/items/2b009aa957cfa4895d50
現役シリコンバレーエンジニアが教えるPythonで始めるスクラッチからのブロックチェーン開発入門
https://www.udemy.com/course/python-blockchain/
¥1,380 元の価格¥17,400 割引率92%OFF
この価格で購入できるのはあと1日!
280デフォルトの名無しさん
垢版 |
2020/03/30(月) 09:22:04.61ID:RfAeds48
>>258
pythonにもperlの$_変数を導入しようって話か?
やっぱり変数宣言なんて不必要で、みんながみんな決められた記号を使えば、誰にも分かるコードが出来上がるじゃないか
281デフォルトの名無しさん
垢版 |
2020/03/30(月) 09:25:34.42ID:RfAeds48
無論prologにも無名変数として_が用意されてる
ttp://karel.tsuda.ac.jp/lec/prolog/intro2/

ならもう変数命名自体を排除した方がいいのでは
2020/03/30(月) 10:36:50.26ID:Ww8SKZwH
ここってプログラム以前の問題もありですか?
私はターミナルを使うのにあまり慣れていません。
python2.7.3を使わなければならない用事ができました。
macでpyqt4を使おうと思いましたがインストールがうまくいっていないようです。
https://qiita.com/aical/items/2d066801a7464a676994の通りにしました。
ターミナル↓
hogenoMacBook-puro:~ hoge$ pyuic4
Traceback (most recent call last):
File "/Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/PyQt4/uic/pyuic.py", line 26, in <module>
from PyQt4 import QtCore
ImportError: No module named PyQt4

pyuic4を使うとインストールができたかどうか確かめられるとのことで使いましたが、
どうやらpythonが認識していないようです。
pyqt4がありそうに見えるのにno moduleと言われるので困っています。

これが現在の様子です
hogenoMacBook-puro:~ hoge$ python
Python 2.7.13 |Anaconda 4.0.0 (x86_64)| (default, Dec 20 2016, 23:05:08)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
283282
垢版 |
2020/03/30(月) 11:05:28.11ID:Ww8SKZwH
mojave 10.14.6です
2020/03/30(月) 18:35:12.90ID:YcK6aFmi
>>282
PyQt4がインストールされていない

conda install pyqt=4

それでも出るようなら環境変数PYTHONPATHを設定してパスを通す

export PYTHONPATH=$HOME/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages
2020/03/30(月) 19:03:31.14ID:Ww8SKZwH
>>284
ありがとうございます。解決しました。
conda install pyqt=4 はつい先ほどマニュアルを読んで実行したはずが
なぜか追加要素がたくさんあって驚きました。
それでも解決しませんでしたが、次にパスを通すことでうまくいきました。
286デフォルトの名無しさん
垢版 |
2020/03/30(月) 19:46:36.95ID:77mzFAH1
一昨日こちらでスクレイピングの質問し回答を参考にさせていただいたものです。
エラーが起きなければ25件titleとURLが取得できると思うのですが、5件しか表示させず
IndexError: list index out of rangeとなってしまいます。
指定しているインデックスの問題だと思い番号をかえたりしてみましたが改善されません。何が原因なんでしょうか?

import requests
from bs4 import BeautifulSoup

page_url ="https://news.yahoo.co.jp/topics/top-picks";
r = requests.get(page_url)

soup = BeautifulSoup(r.text, features="html.parser")

a_tags = soup.find_all("li", class_="newsFeed_item")

data = []
for h1_tag in a_tags:
tmp_article_a_tag = h1_tag.find_all("a")[0]
title = tmp_article_a_tag.text
url = tmp_article_a_tag.get("href")
print("title:{} url:{}".format(title, url))

data.append([title, url])
2020/03/30(月) 19:57:53.66ID:mLHxpijy
今日日anacondaって使うメリットあるか?
2020/03/30(月) 20:08:48.06ID:YcK6aFmi
>>287
Anacondaはシステムのライブラリが足りない場合でも動くので、そういう環境の人は使えると思うよ

例えばCentOS系でDockerが使えない場合、ライブラリが古い場合でも必要なライブラリはAnacondaがインストールするので新しいpythonが使える

他には機械学習関係でcudaやcudnn等のNvidia環境を構築するのは圧倒的に楽
バージョンの干渉で迷う事はほぼない

.bashrcや.zshrcにデフォルトでAnacondaを設定するとデフォルトのPythonと環境が違うのでトラブルの元になるけど、毎回sourceコマンドを叩くのも面倒なので利便性とのトレードオフかな
2020/03/30(月) 20:17:25.67ID:UMPMfaDu
venvみたいなめんどくさいことするならanaconda入れる方がよっぽど楽だけどね。
PATH設定くらいだからそこまで問題がわからなくなることが多いとも思わん。
2020/03/30(月) 20:22:12.99ID:mLHxpijy
condaに入ってないライブラリをpipで持ってきて地獄を見たことがあるから、最近はpoetry使ってる
今の主流はpipenvなのかな?
2020/03/30(月) 20:31:02.36ID:tCK+oDY4
conda使ってるのにpipで入れてる上になんか入らないやつ手動でsite-packageフォルダにコピーしてるけどダメなの?
2020/03/30(月) 20:35:02.16ID:UMPMfaDu
>>290
それさらに地獄みるやつやん。。
2020/03/30(月) 20:42:23.05ID:OS5ajOLp
いい加減、ライブラリ・パッケージ管理ツールを統一して欲しいもんだが
次々と新しいものが出てくるばかりでどうにもならんな
2020/03/30(月) 20:49:01.25ID:Ww8SKZwH
追加で質問です
$conda install -c dan_blanchard pyenchant でインストールしようとしていますが、
10分経っても終わりません。なにかいい方法はないでしょうか。
Collecting package metadata (repodata.json): \  ←この棒がずっと回っている
2020/03/30(月) 20:51:17.33ID:Ww8SKZwH
anacondaを使った理由はたまたまネットで見つけたページにそう書いてあったからです。
私はとあるソフトを使いたいだけでプログラミングについてはよくわかりません。
2020/03/30(月) 20:54:47.63ID:UuzilOkY
>>286
ブラウザの開発ツールでページ構造よく見てみ
5個ごとに入ってる広告がliの直下はaタグではなくdivになってるから
2020/03/30(月) 22:50:27.26ID:OeGDYM8m
ちょ、python最新版にしたらkerasが対応ついてきてなくて積んだww
2020/03/30(月) 23:06:45.02ID:BJjh8Wtl
keras, ras, whatever will be will be.
299250
垢版 |
2020/03/30(月) 23:17:49.32ID:+W5CUrfY
>>286
Ruby で作ったけど、最初の部分は省くけど、( >>251 を参照)

li.newsFeed_item の子孫のa は、29件で、li.newsFeed_item の直下のa は、25件。
Python のfind_all("a")[0] は、子孫も含めるのじゃないか?

出力は、こういう感じ
title:富士フ、アビガン治験開始へ3/30(月) 22:52 url:https://news.yahoo.co.jp/pickup/6355698
title:大連市 北九州にマスク20万枚3/30(月) 22:40 url:https://news.yahoo.co.jp/pickup/6355699

doc = Nokogiri::HTML( driver.page_source )

elements = doc.css( "li.newsFeed_item" )

# li.newsFeed_item の子孫のa は、29件
results = elements.map { |elem| elem.at_css( "a" ) }
puts results.length
results.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" }
puts "------------------------------------"

# li.newsFeed_item の直下のa は、25件
ary = elements.each.each_with_object( [ ] ) do |elem, ary|
elem.children.each do |child|
if child.node_name == "a"
ary.push child
break
end
end
end

puts ary.length
ary.each { |elem| puts "title:#{ elem.text } url:#{ elem.attr( "href" ) }" }
300デフォルトの名無しさん
垢版 |
2020/03/30(月) 23:20:19.63ID:w//nIWz4
昨日から学習始めました。
pandasで質問なんですが、このようなDataFrameがあるとして、

日付    スコア
2020-03-01   20
2020-03-02   15
2020-03-03   25
 ︙
↑これにカラムを追加して累積のスコアを取得したいです。

日付    スコア  累積
2020-03-01   20   20
2020-03-02   15   35
2020-03-03   25   60
 ︙

カラムの追加は出来ています。
データは長いものなんですが、forを使うんですかね?
それともちょうどいいメソッドみたいなものがあるんでしょうか?
くだ質ですけどよろしくお願いします。
301デフォルトの名無しさん
垢版 |
2020/03/30(月) 23:25:59.36ID:jw5yj4PZ
このスレの上の方に答えあるぞ
2020/03/30(月) 23:27:22.57ID:2w3kRjBE
この辺組み合わせろ
cumsum
Series
concat
2020/03/30(月) 23:29:30.28ID:w//nIWz4
>>301
>>302
ヒントありがとうございます!
304デフォルトの名無しさん
垢版 |
2020/03/30(月) 23:29:55.66ID:FpzyYz24
https://qiita.com/kyoro1/items/b7f9b26e93df85984f51
305294
垢版 |
2020/03/30(月) 23:36:43.49ID:Ww8SKZwH
何度もすいません 環境書いてなかったので
mac mojave10.14.6 python2.7.3 anaconda で pyenchantを入れようとして
conda install -c dan_blanchard pyenchant を使ったものの
Collecting package metadata (repodata.json): / が数時間ほど出続けて一向に終わりません。
conda install pyenchantも試しましたが同じような結果でした。
IDEは多分xcordだと思います。
2020/03/31(火) 01:18:04.40ID:UiwRagcc
>>302
出来ました!ありがとうございます!
嬉しい!
2020/03/31(火) 11:51:47.38ID:b44czDa9
>>305
それはlinux用だからmac用の探してインストールしたら?
https://anaconda.org/search?q=pyenchant
https://anaconda.org/natx/pyenchant とか
conda install -c natx pyenchant
308305
垢版 |
2020/03/31(火) 13:29:13.56ID:+y4wT+20
やってみましたが特に変わらないです。10分ほど待ちましたがまだ同じ文章が出て回ってます
309デフォルトの名無しさん
垢版 |
2020/03/31(火) 13:32:41.19ID:fqZmXB15
ありがとうございます。再度構造を確認したら間違っていることに気がつきました。

>>299
参考になりました。ありがとうございます。findの使い方、ページの構造を理解しきれてなかったので基本から見直してみます。
2020/03/31(火) 16:00:25.21ID:jiTc7pCb
>>309
いまこそ、新しい知識を身につけよう!インプレスの人気書籍ムックを3月31日まで全文無料公開
https://book.impress.co.jp/items/tameshiyomi
AndroidでもPythonが使いたい - Termuxを始めよう
https://news.mynavi.jp/article/zeropython-59/
JavaScriptで動かそうobniz S
https://obniz.io/ja/products/starterkit
2020/03/31(火) 16:58:32.63ID:1xgVifiL
>>308
アンカーを省略するんじゃない

権限は足りてるか?

最近のMacOSなら、ルートレスが悪さをしてるかもしれないので
一時的にでも切ってやってみそ
312307
垢版 |
2020/03/31(火) 17:06:20.92ID:b44czDa9
>>308
ゴメン linux用のパッケージ入れようとしてたのが原因なら、無反応じゃなくてエラーになってたはずだね

condaのバグでそういう症状が報告されてるから、そっちかな
(Anaconda 4.0.0なら関係ないかもだけど、condaをアップデートしてたらありえそう)
https://github.com/conda/conda/issues/9221
mmoisseさんのコメントに従ってsubdir_data.pyを編集しないとダメなんだけど、無理そうならpython3で試すとか
この修正はcondaに取り込まれないので( https://github.com/conda/conda/pull/9600 )、もしこれが原因なら、待ってても(python2では)直らないと思う
2020/03/31(火) 20:53:43.52ID:HDRrREDo
【速報】東京都が #新型コロナウイルス 感染症死亡者数を過少評価か、

「例年より少ない」とされていたインフルエンザ関連死が急増=国立感染症研究所
https://www.niid.go.jp/niid/ja/flu-m/2112-idsc/jinsoku/1852-flu-jinsoku-7.html


コロナで死んだのインフルに振り替えてるんじゃまいか
こういうニュースが出てくる時点で隠蔽はもう無理
おそらくパンデミックは避けられないと思うね
314308
垢版 |
2020/03/31(火) 22:09:38.19ID:+y4wT+20
>>311
・アンカー省略して申し訳ないです
・私はこのmacの管理者です。それ以上のことはわかりません
・切りましたが変化ないです
>>312
・python2を使う必要があります
・anaconda4.0.0 でconda 4.8.3 py27_0 のようです(conda listで出しました)
・そのプログラムを==から<にすればいいのはわかりましたが方法がわかりません
そもそも場所もわかりません
2020/03/31(火) 22:09:46.61ID:1xgVifiL
┐(´д`)┌ 現状をまだパンデミックだと認めてないのはただの政治判断ッショ
2020/03/31(火) 22:10:50.21ID:1xgVifiL
>>315>>313宛な

自分でアンカー省略するなといっといてコレとはなさけなや (´・ω・`)トボーン
2020/03/31(火) 22:13:29.92ID:1xgVifiL
>>314
312氏の投稿のほうが当たりっぽく
かつ
Python2系縛りがあるとなると、
308のナウのパウァーでは
どーにもならないっぽいな・・・
condaがばぐっててむりでした。どーしましょ ってさっさと上に相談してみる に1票。
318デフォルトの名無しさん
垢版 |
2020/03/31(火) 23:55:02.12ID:1uZzdSX9
>>300
df = df.assign(累積=np.cumsum(df['スコア']))
で1行で出来ますよ
319デフォルトの名無しさん
垢版 |
2020/04/01(水) 06:25:50.38ID:wvARRrAt
sys.stdout.buffer.write(b"\x41"*10)
ってやると「AAAAAAAAAA10」って表示されるんですけどこの最後の10ってなんですか?
これの取り方を知りたいです
2020/04/01(水) 08:42:18.93ID:U2YXFsyC
>>319
byte型とstr型まぜるな危険ちゅーか混ぜれないぜイラァ!が、Python3あるあるらしいぜ。
hoge=b'\x41'
hoge=hoge.decode()
sys.stdout.buffer.write(hoge*10)
321312
垢版 |
2020/04/01(水) 08:56:47.44ID:rQtQCSfO
>>314
>conda 4.8.3
4.7.11以降だから、やっぱり該当するね
>・そのプログラムを==から<にすればいいのはわかりました
お、それが分かるんならもうちょっと
その続きの部分でmmoisseさんがashleymaeconardに教えてる↓のコマンドで見つかるはず

dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*"

「which conda」でcondaがインストールされてる場所がわかるので、そのディレクトリ下からsubdir_dataっていうファイルを探すって感じ
おそらく ../lib/python2.7/site-packages/conda/core/subdir_data.py みたいな場所にあるんじゃないかな?

でも、python2も使おうとしてるpyenchantも古い(最近のはpython2対応してない)ので、今後も問題が起きた時に対応策を調べるのが結構大変だと思うよ(最新の環境の方が情報が見つけやすい)
322デフォルトの名無しさん
垢版 |
2020/04/01(水) 11:56:52.96ID:5VJq6KKK
>>318
df['累積'] = np.cumsum(df['スコア'])
323デフォルトの名無しさん
垢版 |
2020/04/01(水) 12:20:32.10ID:5VJq6KKK
>>320
そいつもエラーだ

>>319
最期の10 は単に戻り値が画面に出て来るだけ
>>> _ = sys.stdout.buffer.write(b"\x41"*10)

これで消える
2020/04/01(水) 12:23:59.03ID:vhJXsBKc
>>320
馬鹿は黙ってろ
325デフォルトの名無しさん
垢版 |
2020/04/01(水) 12:53:19.93ID:wvARRrAt
>>320
sys.stdout.buffer.write()だとstr型は表示できません
ですが一応答えてくださってありがとうございます…

>>323
ありがとうございます!
print()のbyteをデコードして出力する感じのものだと思ってたんですが動作違うんですね…勉強になりました
326308
垢版 |
2020/04/01(水) 12:53:42.54ID:DmxLU0iC
>>321
dir=$(dirname `which conda`); find ${dir}/../lib -name "subdir_data*"
を使ったら
usage: dirname path
find: /../lib: No such file or directory
と言われてしまいました
>>317
チームメイトは日本語ほぼ通じないし私の英語も足りないので難しいことを喋るのはきついです
ちなみに会社ではないし賃金もないです
2020/04/01(水) 13:51:04.05ID:U2YXFsyC
>>325
sys.stdoutするところまで確認しないで書き込んですまんそ。

言い訳すると、朝だからバタバタしていた。

>>323横レスだけどなるほどなっとく
328321
垢版 |
2020/04/01(水) 14:31:03.22ID:rQtQCSfO
>>326
which condaの結果が取れてないのかな?
ターミナルで使うシェルのコマンドの使い方とか意味がわかってないなら、「mac ターミナル 入門」とかで検索して適当な入門記事とか読んでみると、何をしているか(わからない時の調べ方とかも)わかるようになるよ

やってることは
which condaでcondaがインストールされてる場所を調べる
dirnameコマンドでその場所のディレクトリを取得する
変数dirに結果を格納
その中(下の階層)にある名前がsubdir_data始まりのファイルをfindコマンドで探す
っていう流れなので、個別に分けて実行してみるとわかりやすいと思う

あとは、別にターミナル使わなくても、ファイル検索の機能やツールでsubdir_data.pyを探してもいいと思うよ
もし複数見つかったとしても、condaのファイルかどうかはファイルパスからわかるんじゃないかな?
329308
垢版 |
2020/04/01(水) 15:44:10.62ID:DmxLU0iC
>>328
あああ微妙にわかった気がしてきました
なるほどだから一行に$が何回も出てきたのかと納得しました

確かにwhich condaを試すと回答が出てこず何事もなかったかのように
hogenoMacBook-puro:~ hoge$ が出てくる状況になっていました。
ウインドウを閉じてまた開くと普通の回答が戻ってきて不気味です
今度はfind: /Users/hoge/.pyenv/shims/../lib: No such file or directory
になって多少進歩しましたが見つからないですね
mdfind subdir_data*は何も出ません。
find / -name subdir_data*は末尾にPermission deniedのついた大量のデータが出てきましたが
condaという文字が見当たらないです

と書き込もうとしてfindの回答したデータに気づきました
/Users/hoge/.pyenv/versions/anaconda-4.0.0/lib/python2.7/site-packages/conda/core/subdir_data.py
これだ
なぜか/Users/hoge/.pyenv/versions/anaconda-4.0.0/系統の回答には
頭のfind: も末尾の: Permission deniedもついていなくて目が滑っていたようです
早速finderにパスを打ち込んで直接書き換えることで変更し、バグが直ったようです

現在のバージョンはpython3.4を要求してきたので古いのにします
ttps://pypi.org/project/pyenchant/1.2.0/#history
2.0.0を入れればいい感じですか?
2020/04/01(水) 18:10:19.22ID:mrdDGiKd
>>329
本家もメンテナンスしないような古いバージョンのAnacondaと戦うのは辞めた方がいい

Anacondaはconda installを使った場合はパッケージの干渉を細かくチェックしてるけども、pipを使ってはいけない訳でもない

pip install --upgrade pip
pip install pyenchant

Mojaveにpyenvでanaconda-4.0.0をインストールして上記コマンドを試してみたが普通インストールできて適当なサンプルも動いた
2020/04/01(水) 18:12:28.65ID:bo+zmjIt
やっぱpoetryが最強なんだって
332328
垢版 |
2020/04/01(水) 18:50:20.00ID:rQtQCSfO
>>329
あーそっかnatxはpy34なんだねゴメン
https://anaconda.org/search?q=platform%3Aosx-64+pyenchant
xrysoflis の方がpy27だから、そっちを使えば良いんじゃないかな?Filesタブで確認できるよ
>>330 も言ってるし、朝も書いたけど古すぎて後々かえって困ると思うのでオススメできないけど、python2使わなくちゃいけないならpyenchantもv2以下になるね

一応conda skeleton使ってPyPIパッケージもインストールできるよ
https://qiita.com/itsumonotakumi/items/f0273c2a3a04ef808dbd
2020/04/02(木) 07:42:24.51ID:BA8GpIv4
>>329
>ウインドウを閉じてまた開くと、普通の回答が戻ってきて不気味です
Mac では端末の設定ファイルに、~/.bashrc を使うか知らないけど、
たぶん端末の設定ファイルに、設定を書き込んだから、
端末を再起動(閉じて開き直す)すると、設定ファイルを再読み込みするから、状態が変わる!
だから設定ファイルに書き込んだら、常に端末を再起動すればよい

例えば、Windows 10, WSL, Ubuntu 18.04 で、Ruby のバージョンマネージャー・rbenv を使うと、

~/.bashrc に、以下の2行を追加するように言われる。
内容は、環境変数PATH の先頭に、rbenv のパスを追加して、rbenv init を実行する

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

2行を追加してから、source ~/.bashrc と入力して、~/.bashrc を再読み込みするか、
端末を再起動すると、更新された、~/.bashrc を読み込むので、

echo $PATH
と入力すると、確かに先頭に、~/.rbenv/bin が追加されているので、
which rbenv
と入力すると、~/.rbenv/bin/rbenv が表示される。
これで、rbenv コマンドをグローバルで使える

以下、rbenv install 2.6.5, rehash, global で、好きなバージョンを使えるようになる

rbenv which ruby
と入力すると、確かに、versions の下に、インストールされている!
~/.rbenv/versions/2.6.5/bin/ruby
2020/04/02(木) 08:34:38.83ID:I8hlhwK7
最近はMacのデフォルトシェルはzshになってるからそれで嵌るやつは嵌る
2020/04/02(木) 08:47:33.45ID:phtOISOQ
>>334
何…だと…
2020/04/02(木) 09:26:18.03ID:XZMaUUEC
obj.sort(str) みたいなのがあって、引数がリストなど受け付けないとき
obj.sort(str_1).sort(str_2)みたいに書いてるんですがバカっぽいです
なにかいい書き方はありませんか?
2020/04/02(木) 09:56:09.63ID:9wNZSyo7
バカっぽい以前に何をしたいのかよくわからん
安定ソート前提なの?
2020/04/02(木) 10:39:30.40ID:s8KkhiHc
>>336
objとstrがどういうものかによる

built-inのsort()/sorted()を使ってDictionaryを複数キーでソートしたい場合は
sorted(obj, key=lambda x: (x[‘str_2’], x[‘str_1’]))

obj.sort()が独自の比較ロジックを実装してるなら
それを比較関数として切り出してsort()/sorted()に渡す
339308
垢版 |
2020/04/02(木) 11:30:42.92ID:TJziRBLB
チームメイト(そのソフト作成者)に相談したら返事もらえたのでまずそのとおりにしました
python -m pip install pyenchantで 3.0.1 が無事インストールできました
>>330
ERROR: Package 'pyenchant' requires a different Python: 2.7.13 not in '>=3.5'と言われました
>>332
conda install -c xrysoflis pyenchant==1.6.6しましたが
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistenc-

- https://repo.continuum.io/pkgs/free/osx-64::ipython==4.1.2=py27_1
(同じようなものが何行も)
failed with initial frozen solve. Retrying with flexible solve.
Solving environment: -
でこれ以上進まなくなりました
>>333
残念ながら今の私には理解できません
>>334
私のはbashのままのようです

早速インストールした環境を使ってそのソフトを動かしたところ、
SyntaxError: invalid syntaxと言われました。
チームメイトによるとそのソフトはmacで起動確認してないので動かないのかもしれないそうです
ええ…
幸いwindows ならその人が全部やってくれそうです

質問に答えてくださったみなさんありがとうございます
勉強になりました。特に==を<に書き換えるあたりは興奮しました
もし補足やうまくいきそうな方法があればまだ見てますのでお願いします
340デフォルトの名無しさん
垢版 |
2020/04/02(木) 14:11:06.61ID:LyfVZOwj
いつもありがとうございます。こちらで回答をいただきながらスクレイピングを行っている者です。
個別でURL、タイトルなど取得し無事に出力することができたのでページ内の全URLを出力してみたところ、
予定では別々な25件のURLが出力されると思ったのですが、
同じURLが220件出力されてしまいました。原因はenumerateの使い方が間違っている。
取得する場所が間違っているからだったりするのでしょうか?

import requests
import re
from bs4 import BeautifulSoup

page_url ="https://news.yahoo.co.jp/topics/top-picks";
r = requests.get(page_url)

soup = BeautifulSoup(r.text, features="html.parser")

item_list = soup.find_all(class_=re.compile(r"newsFeed*"))

for num,item in enumerate(item_list):
news_url = news.find(class_="newsFeed_item_link").get("href")
print("num:", num)
print("url", news_url)
print("*" * 100)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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