Pythonのお勉強 Part60

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2019/04/30(火) 08:34:23.34ID:sH/UeeJ6
★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

◆エラーを解決したいときはエラー表示と
 環境(Pythonのバージョン・OS・IDEの種類とバージョン)をシッカリ書く

◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩れるので
  ↓にあげてるような、ソースコード用サイトに貼ってきてくだしあ
    (スクリーンショットをimgurうp等の横着をしない)
ttp://ideone.com/      推定最大手。デフォ設定がCなので、Pythonするには選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。
ttps://jupyter.org/try    (旧try.jupyter.org)ちょっとめんどうそう。
ttps://ja.osdn.net/pastebin/ ログイン必須になりやがった(゚Д゚#)

◇Pythonオフィシャルサイト
http://www.python.org/

◇まとめwiki
ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その43【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1555397061/

〇前スレ
Pythonのお勉強 Part59
http://mevius.5ch.net/test/read.cgi/tech/1552194662/

次スレの建立は>>985が挑戦する
2019/06/04(火) 15:34:05.65ID:oF2K+2cj
>>421 だから、numpy ならそのまま使えばいいじゃんと言ってるんだけど、話が噛み合わないな。
CPython のことを言ってるのか?
誰となんのために喧嘩してるんだ?

<>423 >>417 で、CPython の話をしてるのに、Cython の話を持ち出してきたからさ。
その前はPyPy の話題。

よくわからんから好きなもの使えば。
427デフォルトの名無しさん
垢版 |
2019/06/04(火) 15:59:44.40ID:XXr8i2SB
>>422
一万請求されたぞふざけんな!
2019/06/04(火) 16:09:43.04ID:jFAGFsyF
numpy使うのが最速だよな
cuPy入れれば勝手にGPU使って速くなるし
もはやCUDAの知識もいらない
AIエンジニアといってもライブラリ使うマンに成り下がってる自分に腹がたつ
2019/06/04(火) 17:36:41.49ID:JjymHpsL
>>420
ガイジは喋んなくていいよ
2019/06/04(火) 18:30:42.03ID:5jXXyAl7
>>428
まあ仕方ない。。
自分の慣れた道だったとして相手がF1ドライバーとかだったらほぼ勝ち目なしだし。。
2019/06/04(火) 18:36:50.86ID:Jyr2dHH9
Python使って自動運転させればF1ドライバーに勝てるんじゃ無いのか
AIだったら命知らずでぶっ飛ばせるしw
2019/06/05(水) 00:39:05.49ID:8Be+XBy4
>>431
問題点 車体価格
433デフォルトの名無しさん
垢版 |
2019/06/05(水) 02:34:51.47ID:L0nmYMGT
Python初心者です。質問の仕方や書き方など間違っているかもしれませんが、よろしくお願いします。
Python2.7を使っております。
.datのバイナリデータの検索と該当箇所を置き換えをやりたいのですが
open read replace またバイナリデータの格納や表示などWEBで見てトライしましたがうまくいきません。

Test.dat の 01 00 01 00 01 00 を 00 01 00 01 00 01 に書き換えるにはどういう記述方法になりますでしょうか?
434デフォルトの名無しさん
垢版 |
2019/06/05(水) 02:39:40.49ID:L0nmYMGT
上記はhexedit などで見たところの16進数の表記のつもりで書かせていただいてます。
2019/06/05(水) 03:39:08.62ID:pJvQ51Lo
まずどう上手く行かなかったか書こう
エラーメッセージや途中経過重要
436デフォルトの名無しさん
垢版 |
2019/06/05(水) 10:33:18.23ID:L0nmYMGT
f = open(test.dat,rb)
data = f.read()
f.close()

print data

@<?>などのバイナリファイルをテキストエディタで開いた時の文字化けのような表示
(ここまでしかできません)
Aこれを16進数などに変換して該当箇所を任意16進で書き換え
Bバイナリファイルとして書き出し or 元データを上書き

のように考えております。よろしくお願いします。
2019/06/05(水) 11:04:22.91ID:TJpsnTe7
https://stackoverflow.com/questions/4599835/simple-edit-to-a-binary-file-in-python

このへん読んでみては
438デフォルトの名無しさん
垢版 |
2019/06/05(水) 11:57:22.22ID:L0nmYMGT
ありがとうございます。早速見て見ましたが英語が苦手で訳しながらやったのですが
うまくいきませんでした。

.dat の read() を行なった後、dataに変数に入れて表示される<?>文字列?化け?
のようなものを16進数に変換する方法がわかりません。

data = [ f.read() ]
にすると

['¥x00¥x00¥x00¥x00¥x00¥x00¥x00¥x00']

に表示できるのですが
439デフォルトの名無しさん
垢版 |
2019/06/05(水) 12:30:21.89ID:SxBZ5bvb
馬鹿には無理
440デフォルトの名無しさん
垢版 |
2019/06/05(水) 12:45:38.14ID:L0nmYMGT
すいませんでした。鬱病が原因で学校を辞めて
なんとかプログラミングのスキルを身につけて社会に出ようと努力してみたのですが
やはり、なかなか難しいです。

ありがとうございました。
2019/06/05(水) 12:47:43.39ID:KKGqCSfk
英語が苦手とか致命的では?
中学校からやり直した方が良いと思う
2019/06/05(水) 12:49:59.68ID:ETZz2j+d
Pythonは情報系の大卒以上か理系院卒以上でないと仕事ないよ
2019/06/05(水) 13:11:20.66ID:TKKYwlvh
その目的ならjavaかphpの方がいいな
2019/06/05(水) 13:17:04.05ID:zgKRHSoo
>>440
学校辞めたのなら、余計にプログラマー無理だろ
2019/06/05(水) 13:33:28.47ID:iseE4LCd
openの引数ってクオートしなくて良いの?
446デフォルトの名無しさん
垢版 |
2019/06/05(水) 13:35:00.88ID:Cxh3OVbN
ネタでしょ
初心者はふつうバイナリデータいじらん、しかもPython2て
2019/06/05(水) 13:35:18.79ID:Oo3xyqZm
pythonでバイナリデータとか日本語扱うのはかなり面倒だよ
初心者は絶対ハマる
448デフォルトの名無しさん
垢版 |
2019/06/05(水) 13:36:18.80ID:L0nmYMGT
import subprocess
import glob

File_Path = (glob.glob("*/test.dat"))
for i in range(len(File_Path)):
print File_Path[i]
file = open(File_Path[i],'rb')
data1 = [file.read()]
data2 = data1[0].replace("\x01\x00\x00\x00\x04\n\x00", "\x00\x00\x00\x00\x04\n\x00") .replace("\x02\x00\x00\x00\x00\x00\x00\x00", "\xf4\t\x00\x00\x00\x00\x00\x00")
file.close()
file = open(File_Path[i],'w')
file.write(data2)
file.close()

一ヶ月前からプログラミングはじめて書き方もよくわからないのですが、上のコードで一応動くようになりました。
修正御指南お願いします。
449デフォルトの名無しさん
垢版 |
2019/06/05(水) 13:37:06.11ID:L0nmYMGT
>>446
ネタじゃありません
2019/06/05(水) 13:58:54.05ID:zgKRHSoo
>>448
学校に行けよ
2019/06/05(水) 15:22:10.72ID:Vxwz5LZ9
出来てるんじゃないの?
バイナリファイルを表示して確認出来ないってこと?
ならバイナリエディタ使うとかLinuxならhexdumpで表示するとか?
バイナリとテキストの違いはわかるよね?
452デフォルトの名無しさん
垢版 |
2019/06/05(水) 15:41:23.09ID:L0nmYMGT
一応動きましたが、納得いきませんで

> data1 = [file.read()]

data1をリスト格納によって
\x00 \x00 \x00 \x00 \x00
の表示取り扱いができるようになり、replaceも動くようになりました。
しかしリストに格納する意味は無いですし
***(data1)関数などで、表示できれば良いなと。調べてもわかりませんでした。
453デフォルトの名無しさん
垢版 |
2019/06/05(水) 15:52:30.66ID:d0W0ZGzg
プログラミングに向いてないというより人間を名乗らない方が良い
出来の悪いAIです
くらいにしとけ
2019/06/05(水) 16:03:53.07ID:jOdpsPyG
ひでぇ
455デフォルトの名無しさん
垢版 |
2019/06/05(水) 16:25:46.98ID:Ge2qACax
もしかして成長したアイちゃんでは?
最近見なかったが戻ってきたのか。
2019/06/05(水) 16:28:59.29ID:9wg8020H
Pythonを極めればAIエンジニアとして生きていけると思うのは大きな勘違い、色んな言語を組み合わせる必要がある、と自称玄人は素人に良く言う

素人は他の言語もPythonもできないのにそんな事をわざわざ言ってどうなる
まずPythonだけでも勉強させてやれよ
2019/06/05(水) 17:35:44.64ID:Oo3xyqZm
やる気あるのは良いことじゃね
独学でも挫折する人多いわけで
2019/06/05(水) 17:48:23.37ID:iU7KKE1l
DEBUG=0っていうグローバル変数のあるモジュールをシェルから実行するときにこれをDEBUG=1にして実行する方法はありますか?
例えばmake DEBUG=1みたいな感じで。
2019/06/05(水) 18:00:53.41ID:qR/LRS8W
>>458
自作のモジュールか何かで編集可能かつbashの場合
DEBUG=${DEBUG:=0}
と定義して呼び出すときに上書きできる


もし編集不可能ならそんな方法はないのでsedやawkで置き換えることになる
460デフォルトの名無しさん
垢版 |
2019/06/05(水) 18:25:45.12ID:L0nmYMGT
わかりました


うらみます
2019/06/05(水) 18:30:47.47ID:BqK4nqSF
>>433 なんかよくわからないんだけど、

s1 = 0x01020304

を 0x02010403
にしたいと言う事かな?
462デフォルトの名無しさん
垢版 |
2019/06/05(水) 18:32:40.92ID:3XxRby7F
>>448

https://ideone.com/BCfi7E
に自分のセンスで書いた

採点すると
・不要なimportはしない
・globはファイルが複数ない場合は使わない
・[file.read()]の大カッコは不要
・変数名の大文字小文字の使い方がおかしい
2019/06/05(水) 18:33:31.82ID:iU7KKE1l
>>459
ありがとうございます。
やっぱりソースを書き換えるしかないんですね。
2019/06/05(水) 18:37:49.49ID:BqK4nqSF
>>460 落ち込まなくても良いよ。 2ch なんていろんな人間がいるから。 バカもいるが、優しい人もいる。
質問してるうちに何が大事なのかがわかってくると思うから、めげずに質問を続けてみたら?

>>463 や、>>465 は、少し反省しろ。 病気を乗り越えようと頑張ってる人をけなすなんてお前たちは最低だよ。
2019/06/05(水) 18:54:50.98ID:kn0vanX8
申し訳ない
2019/06/05(水) 19:44:33.90ID:vL5jkg3Y
まじで病気だったなら5chなんかに来ないでスクールとかに通えよ
https://www.cyber-u.ac.jp/subject/python.html
タダで懇切丁寧に教えてもらおうとか頭おかしい
2019/06/05(水) 19:53:05.76ID:lJmEqgzT
>>466
教えたくない人は黙っていればいいんじゃないかな
2019/06/05(水) 20:01:24.12ID:kn0vanX8
プログラミングの経験自体がないっぽいから
とりあえずはWebに転がってるサンプル入力して
結果を見て出来た!ってニヤけることから始めるべきかと。
数こなすことで出来ることと出来ないことが何となく分かってくる。
出来ないことをあれこれ考えて、出来る単位で作っていくのがプログラミング。
2019/06/06(木) 00:46:39.08ID:Qxsak61t
>>452
Python には、Ruby のpack/unpack みたいなのは、無いのか?

pack : 配列 → 文字列
unpack : 文字列 → 配列
2019/06/06(木) 03:21:45.18ID:3ui/AiH2
>>468
初心者用ブログにのってるコードをコピペでもいいからまずは自分で動かしてみるってのは良いよね
この値を変えたらこう動くだとか、このコードとあのコードを組み合わせたら、こう言う動きが出来るかもしれないなど組み立てる能力にも繋がるし
471デフォルトの名無しさん
垢版 |
2019/06/06(木) 05:33:20.19ID:dTLpbEEC
画像の中から特定の画像(拡大や縮小をされてても対応可能な)
見つけ出すコードを下さい。
2019/06/06(木) 08:54:18.57ID:agV0OMSj
>>463
sys.argvでググれ
2019/06/06(木) 11:21:44.80ID:NTWs7n2j
>>469 自分で調べもしないで聞くな。

r=['A','B','C']
rs=''.join(r)
ir=[1,2,3]
irs = ''.join(map(str,ir))

print(rs ,irs , list(rs), list(map(int,irs)))
#OUT ABC 123 ['A', 'B', 'C'] [1, 2, 3]
2019/06/06(木) 11:34:48.14ID:3EP1W6m+
>>469
今のRubyがどうなってるんだか知らないけれど、pythonではバイナリ(bytes)と文字列(str)は違う型
で、pack/unpackは普通バイナリと数値や文字列の変換で使うやつだと思うが、
この目的なら pythonには struct.pack / struct.unpack がある

>>952
repr("\x00") で行けるんじゃないかな
2019/06/06(木) 12:45:35.43ID:cdOVZaEX
>>469
そのものズバリならstructパッケージを使う

型がプリミティブ(intやfloat)ならnumpyでも可能
ファイルからならnumpy.fromfile
バイナリ配列ならnumpy.frombuffer
文字列ならnumpy.fromstring

dtypeでエンディアンも指定できる
476デフォルトの名無しさん
垢版 |
2019/06/06(木) 16:46:27.74ID:MmdtfHnB
安価の番号が違ってても気付かずにレスしまくってるのが
数名(見かけ上は)居るようだが気付いていないところを観ると
SCで自演しまくってるんだろうな
2019/06/07(金) 14:17:21.06ID:DCcV1WZ2
>>476
dat壊れてない?
478デフォルトの名無しさん
垢版 |
2019/06/07(金) 16:19:03.36ID:JkNsgHeN
paizaのプログラミング問題みたいなやつでお勉強はじめたんだけど、Aランク問題になるとタイムアウトしまくる
whileや再帰をforに変えるとか色々やったけど通らないしアルゴリズムが問題なんだろうな
とはいえ模範解答もないし、色々模索しているが挫折しかけているよ…

ただ、こういった高速化のための考え方
みたいなものを学ぶのもきっといつか役立つのかなとも思う
2019/06/07(金) 16:29:20.63ID:QdXw6XxC
>>478 何か一つアップしてみたら?
480デフォルトの名無しさん
垢版 |
2019/06/07(金) 17:22:37.11ID:JkNsgHeN
>>479
paizaの問題は転載ダメなんだ、すまん
2019/06/07(金) 18:52:53.64ID:17VMMr+p
探索問題?
2019/06/07(金) 19:29:15.98ID:t7F5nOi/
なんとなくソートっぽい
2019/06/07(金) 22:16:55.97ID:wtNNzOUb
計算量を落とす基本は、n^2 を、n log(n) の形にする事!

2^10 = 1,024 だから、2^20 = 百万。
ここで、データ数が百万の場合、百万 * 20 = 2千万になる!

一方、n^2 = 百万 * 百万 = 1兆

だから、log(n)の部分は、せいぜい、20〜50ぐらいだから無視できる!
つまり並べ替えて、ソートを使うのが速い!

だから、単純な2重ループになっていたら、ダメ!
ループの内側に、優先度キュー・2分ヒープなど、何らかのソートを使っていないと、ダメ!
484デフォルトの名無しさん
垢版 |
2019/06/07(金) 22:27:46.33ID:iFZF9YQL
関数の中でグローバルな変数にアクセスするのはglobal宣言が必要ですが
リスト変数の場合はappendなどの操作をすると
宣言なしでグローバルなリスト変数にアクセスします

これを禁止するにはどうしたらいいでしょうか?
グローバルな変数にアクセスするときはすべて関数の引数として
渡して意図せず引数にないリストにアクセスしてしまうことは避けたいんです
2019/06/07(金) 23:07:12.51ID:iFZF9YQL
main 関数に相当するものを作ることにしました
2019/06/08(土) 02:05:30.81ID:9yqPu4ja
何をなさる
2019/06/08(土) 08:27:06.81ID:5drHbnb0
Pythonって継承ってライブラリの作者しか使わないんじゃね?って思った
抽象クラスの概念ないしポリモーフィズム簡単だし
488デフォルトの名無しさん
垢版 |
2019/06/08(土) 11:41:57.09ID:ryWt2Gls
abstractなクラスも作れる
何ならinstance化禁止にも出来る
2019/06/08(土) 12:20:56.35ID:9vptTvmT
>>488
それって言語仕様じゃないでしょ?
2019/06/08(土) 12:39:59.66ID:sdBs9egv
標準ライブラリで実装されていることが言語仕様に入らないとか言い出すとasync awaitも言語仕様に文法は存在するけど何もしないコードになる
2019/06/08(土) 12:59:07.72ID:JxaHk6L1
pythonでなくても最近は継承は否定的に見られてるだろ。
2019/06/08(土) 13:07:52.88ID:T9GDbnq/
継承無いと、オーバーロード擬きの判定がダックになって面倒この上ない
2019/06/08(土) 14:18:21.59ID:JxaHk6L1
なるほど、人の迷惑になりそうなクソな書き方をしたい人か。
2019/06/08(土) 16:19:29.84ID:g6YzXvGd
勝手に風潮作らないで
2019/06/08(土) 16:36:25.60ID:wPg0m4E0
ヤバイくらいに言葉が足りてないなw

継承を悪用したアホな設計が蔓延した結果、継承は悪用されやすいので別の代替手段が模索されているという感じだ

例えばjavaは多重継承を禁止した結果、extendsに加えてimplementsなんてものがある
全部implementsでいいんでは?と昔ながらに思ったものだ
496デフォルトの名無しさん
垢版 |
2019/06/08(土) 19:03:56.74ID:CdSbqwtc
そしてdefaultメソッドとか作る始末
2019/06/09(日) 01:20:04.97ID:rn4C+nSw
継承は、Ruby on Rails とか、フレームワークの作者が作るもの。
それを使う方は、そのクラスを継承させて使う

フレームワークの作者以外が、継承を前提にしたクラスを書くのは、滅多にない
498デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:04:45.99ID:V8qyq4Ge
多くはないのは同意するが
滅多にないは言い過ぎ
訂正汁
499デフォルトの名無しさん
垢版 |
2019/06/09(日) 12:40:55.08ID:BmQn1SBQ
baka niiha muri
500デフォルトの名無しさん
垢版 |
2019/06/09(日) 13:28:49.95ID:0qCJsaBL
importについて教えてください。
現在作成しているプログラムはこのような構造になっています。

hogehoge
┣ db ┳ models.py # DBのスキーマを管理するモジュール。rds.pyをインポートしている
┃   .┃ rds.py # DBのセッションを管理するモジュール
┃   .┗ __init__.py
┗ app.py # Webサーバを起動するモジュール

(1)最初に事前準備として手動でmodels.pyを実行する事でDBの作成を行います。
# python db/models.py

(2)その後Webサーバを起動してプログラムの利用が始まります。
# python app.py

ここで質問なのですが、models.pyの中のimport文の書き方によって(1)と(2)のどちらかでエラーが発生します。
(1)でうまく動く時は import rds
(2)でうまく動く時は import db.rds

どうしてこのような挙動になるのか、(1)と(2)のどちらでも動くようにするにはどうしたら良いのかご教示ください。
よろしくお願い致します。
2019/06/09(日) 13:46:58.29ID:Gi1Jt9cY
pythonに限らず相対パスの話で
models.py自身から見りゃそりゃrdsは同じフォルダにある、
app.pyからrdsを見ると\db\rdsにある
502デフォルトの名無しさん
垢版 |
2019/06/09(日) 14:03:14.07ID:0qCJsaBL
>>501
ありがとうございます。
どちらの場合でもエラーはmodels.pyから出るのですが、
app.pyで実行した場合はmodels.pyの中のrds.pyへのパスもmodels.pyから見たものではなくapp.pyが基準になるという事ですか?
なんてこったどうすればいいんだ・・・
503デフォルトの名無しさん
垢版 |
2019/06/09(日) 14:07:25.86ID:V8qyq4Ge
from . import rds
これだけでいけるはず

必要があれば __init__.py にも何か書く
504デフォルトの名無しさん
垢版 |
2019/06/09(日) 21:50:27.72ID:XtRL47qQ
python + chrome + seleniumで制御しています。 
拡張機能を読み込むとインストールに成功しましたのページが開いてしまい。それを手作業で消さないと続きが実行されません。
何か良い方法があれば教えてくれませんか?
2019/06/09(日) 22:00:15.81ID:o1V0PdsM
>>504
毎回インストールしてるのん?
インストール済のchrome使うのはダメ?
506デフォルトの名無しさん
垢版 |
2019/06/09(日) 22:46:33.49ID:XtRL47qQ
profileで拾っても拡張はインストールされた状態にならないので、毎回Optionsでインストールしています。
インストールされた状態でselenium動かせるならそれの方が良いです。
2019/06/09(日) 22:55:59.43ID:o1V0PdsM
profile指定で拡張そのままで起動できてるけどなあ…
ログイン状態とか維持できてる?
俺も最初はそんな問題あったような気がするけど…
正直原因は覚えてない
508デフォルトの名無しさん
垢版 |
2019/06/09(日) 23:03:33.80ID:XtRL47qQ
ログイン状態はキープできてるのですが。。
わかりましたProfile使って色々やってみます。
何か間違えているのでしょうね
ありがとうございました
2019/06/11(火) 17:53:35.07ID:wG4IEdp6
Pythonが最高値を記録 - 6月開発言語ランキング 2019/06/11 08:49 後藤大地
https://news.mynavi.jp/article/20190611-840797/

TIOBE Softwareから、2019年6月のTIOBE Programming Community Index (PCI)が公開された。
TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語が
どれだけ話題になっているかをインデックス化したもの。2019年6月におけるインデックス
は次のとおり。

6月TIOBE Programming Community Index / 円グラフ
https://news.mynavi.jp/photo/article/20190611-840797/images/002l.jpg

2019年6月はPythonが8.530%と、観測が始まってから最も高い水準に到達した。TIOBE
Softwareはこのままの傾向が続いた場合、今度3年から4年でPythonがJavaとC言語を抜いて
最も人気があるプログラミング言語になると予測している。

TIOBE Softwareはこうした動向の理由として、Javaはクラス、静的メソッド、パッケージ
などプログラミングの初心者が学ぶには冗長すぎる傾向があること、C言語ではメモリ
管理に直面することなどを挙げている。こうした言語と比べると、Pythonはシンプルで
ワンライナーで済むこともあり、その簡単さが普及につながっているという。
2019/06/11(火) 20:51:17.82ID:nbZ/cYor
pandasを使ってCSVファイルを開く処理を書いたのですが、
そのファイルのセルの一つに”Null”という文字列が含まれていたため、pandasを介すとそこのセルがNaN扱いになってしまいました
これを文字列のNullのまま扱ってもらうようにはできないでしょうか?
書いたコードはこんな感じです
import pandas as pd
df = pd.read_csv('D:/Desktop/python.csv', delimiter="\t", index_col=[0], header=None)
print(df) #Nullという文字が書かれたセルがNaN扱いになってしまった
2019/06/11(火) 22:35:59.26ID:yU84dTYh
試しにpandas使ってみたらNullっていう文字列はNullって文字列のままで表示されましたよ
そのpython.csvがおかしいんでないの? テキストエディタで中身確認した?
2019/06/11(火) 22:50:52.65ID:nbZ/cYor
>>511
レスありがとうございます
そのCSVの中身はこのようになってます(OpenOfficeCalcで開いたもの)
https://i.imgur.com/QPR1ycq.png
A2の文字列がNullです
これをpandasで開くとこうなります
https://i.imgur.com/hUpmSMu.png
2019/06/11(火) 23:00:26.74ID:yU84dTYh
うんうん、そのCSVをメモ帳とかのテキストエディタで開いて中身を確認すると
nullのところが空になっているんじゃないかな?
2019/06/11(火) 23:05:29.26ID:nbZ/cYor
>>513
すみませんメモ帳で開いたものがこちらです
https://i.imgur.com/1ioyTau.png
空にはなってないです
2019/06/11(火) 23:27:40.11ID:yU84dTYh
うーん、同じようなファイルを作ってpandasで開いてみたけどnullはnullのままだわw

私の環境はWindowsで、メモ帳で>>514の途中までのデータを入力したファイル(文字コードはsjis)を用意して
encoding指定してpandasで開いてみました(encoding指定しないとエラーになる)
>>> df = pd.read_csv(r'C:\Users\tk\Desktop\aaa.csv', delimiter="\t", index_col=[0], header=None, encoding='cp932')
>>> print(df)
1
0
nudge 軽い突き
null ゼロ
nuptial 結婚式
obscenity わいせつ
>>>

ということで、そちらの環境は日本語が含まれているファイルを開いているのにencoding指定無しで開けているのが異なる
もしかしたらencodingエラーを無視して開いているんじゃないのかな?それでpandasで読み込んだ時点でデータが
変わっていると予想
2019/06/11(火) 23:31:41.04ID:yU84dTYh
あ、ファイルの文字コードをutf-8にしたらencoding指定無しでいけたわ
でもnull文字はnull文字のままで、NaNにはならないなぁー
2019/06/12(水) 00:05:34.02ID:BNfp0i08
わざわざ同じように試していただいて本当にお手数おかけしてます
せっかくですので問題が起こっているCSVファイルもあげさせていただきました
もしよければチェックしていただけるとありがたいです
https://dotup.org/uploda/dotup.org1870215.csv
2019/06/12(水) 00:17:35.61ID:dGJQWhEh
>>> df = pd.read_csv(r'C:\Users\tk\Desktop\dotup.org1870215.csv', delimiter="\t", index_col=[0], header=None)
>>> print(df)
1
0
nudge 軽い突き
null ゼロ
nuptial 結婚式
obscenity わいせつ
obsessive 妄想を持った人
omen 前兆
onslaught 猛攻撃
>>>

ででぇーん、再現ならず・・じゃあ私もう寝るから、おやすみー
2019/06/12(水) 00:21:06.05ID:dGJQWhEh
ちなみに私の環境のpandasはAnacondaに入ってたやつで、バージョンは以下のとおり
>>> pd.__version__
'0.20.3'
>>>
2019/06/12(水) 00:21:38.85ID:BNfp0i08
うーん再現ならずですか・・・
お付き合いいただきありがとうございました、おやすみなさい
2019/06/12(水) 00:23:24.16ID:BNfp0i08
自分のpandasのバージョンは0.24.2なので、もしかしたらそこが原因かもしれませんね
いろいろ試してみます
ありがとうございました
2019/06/12(水) 06:14:33.53ID:v9kdzfUv
google colabで読み込んでどうなる?
2019/06/12(水) 09:52:59.33ID:dGJQWhEh
>>512
OpenOfficeよりもLibreOfficeの方が良いらしいですよ
ttps://tedaeri.com/app-which-openoffice-or-libreoffice/
2019/06/12(水) 10:08:38.96ID:kCj8PQiR
>>523
>しかし、既に「Apache OpenOffice」のユーザーがあまりにも多く、終わらせようにも影響力が大きいです。

普及のためには、M$との互換性が高く移行も容易、みたいな宣伝をするくせにw
2019/06/12(水) 21:48:46.24ID:DK5Xdw8/
win上のAnacondaのspyderのエディターで書いて実行する場合
qt5もtkinterもボタンを押して変化なし

Anaconda powershellというのでpython ファイル名だとちゃんと動いた
2019/06/12(水) 22:46:29.53ID:BSq+d1KN
出来るだけきれいなコードを書けるようになりたいと思ってます
動けば良いってレベルから次に行きたい
こういう場面はこういう処理の書き方のほうが良いとかはどうやって身につければ良いですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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