タグ付けされた質問 「python」

Pythonは、マルチパラダイム、動的型付け、多目的プログラミング言語です。これは、学習、理解、使用が迅速で、クリーンで統一された構文を適用できるように設計されています。Python 2は2020年1月1日をもって正式にサポートされなくなりました。それでも、バージョン固有のPythonの質問については、[python-2.7]または[python-3.x]タグを追加します。Pythonのバリアントまたはライブラリ(Jython、PyPy、Pandas、Numpyなど)を使用する場合は、タグに含めてください。

5
関数で例外を発生させるか、なしを返すか?
Pythonのユーザー定義関数のより良い方法は何ですか:raise例外またはreturn None?たとえば、フォルダ内の最新のファイルを検索する関数があります。 def latestpdf(folder): # list the files and sort them try: latest = files[-1] except IndexError: # Folder is empty. return None # One possibility raise FileNotFoundError() # Alternative else: return somefunc(latest) # In my case, somefunc parses the filename 別のオプションは、例外を残して呼び出し元のコードで処理することですが、FileNotFoundErrorよりもを処理する方が明確だと思いIndexErrorます。それとも、別の名前で例外を再発生させるのは悪い形式ですか?

2
TypeError: 'RelatedManager'オブジェクトは反復可能ではありません
Django 次のモデルがあります: class Group(models.Model): name = models.CharField(max_length=100) parent_group = models.ManyToManyField("self", blank=True) def __unicode__(self): return self.name class Block(models.Model): name = models.CharField(max_length=100) app = models.CharField(max_length=100) group = models.ForeignKey(Group) def __unicode__(self): return self.name たとえば、ブロックb1にはg1グループがあります。その名前で、グループg1からすべてのブロックを取得したいと思います。私は次の再帰関数を書きました: def get_blocks(group): def get_needed_blocks(group): for block in group.block_set: blocks.append(block) if group.parent_group is not None: get_needed_blocks(group.parent_group) blocks = [] get_needed_blocks(group) …

8
パンダ:時間間隔による移動平均
私はパンダに不慣れです....私はたくさんのポーリングデータを持っています。3日間のウィンドウに基づいて、毎日の推定値を取得するために移動平均を計算したいと思います。この質問から理解できるように、rolling_ *関数は、特定の日時範囲ではなく、指定された数の値に基づいてウィンドウを計算します。 この機能を実装する別の機能はありますか?それとも私は自分で書くのに行き詰まっていますか? 編集: サンプル入力データ: polls_subset.tail(20) Out[185]: favorable unfavorable other enddate 2012-10-25 0.48 0.49 0.03 2012-10-25 0.51 0.48 0.02 2012-10-27 0.51 0.47 0.02 2012-10-26 0.56 0.40 0.04 2012-10-28 0.48 0.49 0.04 2012-10-28 0.46 0.46 0.09 2012-10-28 0.48 0.49 0.03 2012-10-28 0.49 0.48 0.03 2012-10-30 0.53 0.45 0.02 2012-11-01 0.49 0.49 …

3
ブラウザではなくPythonでjinja2出力をファイルにレンダリングするにはどうすればよいですか?
レンダリングしたいjinja2テンプレート(.htmlファイル)があります(トークンをpyファイルの値に置き換えます)。ただし、レンダリングされた結果をブラウザーに送信する代わりに、新しい.htmlファイルに書き込みたいと思います。解決策はdjangoテンプレートでも同様だと思います。 これどうやってするの?
87 python  django  jinja2 


11
Pythonのnamedtupleをjsonにシリアル化する
namedtupleフィールド名を保持したままaをjsonにシリアル化するための推奨される方法は何ですか? anamedtupleをjsonにシリアル化すると、値のみがシリアル化され、フィールド名は変換時に失われます。json化したときにフィールドも保持したいので、次のようにしました。 class foobar(namedtuple('f', 'foo, bar')): __slots__ = () def __iter__(self): yield self._asdict() 上記は、私が期待するようにjsonにシリアル化しnamedtuple、反復中の非タプルのような結果(私のユースケースには問題ありません)を除いて、私が使用する他の場所(属性アクセスなど)と同じように動作します。 フィールド名を保持したままjsonに変換する「正しい方法」とは何ですか?

5
JavaScriptコードからPython関数を呼び出す
JavaScriptコードからPython関数を呼び出したいのですが、JavaScriptには私がやりたいことを実行するための代替手段がないためです。これは可能ですか?以下のスニペットを調整して機能させていただけますか? JavaScriptコード: var tag = document.getElementsByTagName("p")[0]; text = tag.innerHTML; // Here I would like to call the Python interpreter with Python function arrOfStrings = openSomehowPythonInterpreter("~/pythoncode.py", "processParagraph(text)"); ~/pythoncode.py JavaScriptで同等のものを書くのが簡単ではない高度なライブラリを使用する関数が含まれています。 import nltk # is not in JavaScript def processParagraph(text): ... nltk calls ... return lst # returns a list of strings (will …

2
Seaborn lmplotfacetgridでxlimとylimを設定する方法
Seabornのlmplotを使用して線形回帰をプロットし、データセットをカテゴリ変数を使用して2つのグループに分割しています。 xとyの両方について、両方のプロットの下限を手動で設定したいのですが、上限はSeabornのデフォルトのままにしておきます。簡単な例を次に示します。 import pandas as pd import seaborn as sns import random n = 200 random.seed(2014) base_x = [random.random() for i in range(n)] base_y = [2*i for i in base_x] errors = [random.uniform(0,1) for i in range(n)] y = [i+j for i,j in zip(base_y,errors)] df = pd.DataFrame({'X': base_x, 'Y': y, …
87 python  pandas  seaborn 

17
反復可能オブジェクトを一定サイズのチャンクに分割する方法
重複の可能性: Pythonでリストを均等なサイズのチャンクに分割するにはどうすればよいですか? iterableを入力として受け取り、iterableのiterableを返す「バッチ」関数が見つからなかったことに驚いています。 例えば: for i in batch(range(0,10), 1): print i [0] [1] ... [9] または: for i in batch(range(0,10), 3): print i [0,1,2] [3,4,5] [6,7,8] [9] さて、私は非常に単純なジェネレーターだと思ったものを書きました。 def batch(iterable, n = 1): current_batch = [] for item in iterable: current_batch.append(item) if len(current_batch) == n: yield current_batch current_batch = [] …

4
systemdサービスユニットでvirtualenvを有効にする方法は?
systemdサービスファイルでvirtualenvを「アクティブ化」したい。 systemdプロセスとPythonインタープリターの間にシェルプロセスを持たせたくありません。 私の現在の解決策は次のようになります。 [Unit] Description=fooservice After=syslog.target network.target [Service] Type=simple User=fooservice WorkingDirectory={{ venv_home }} ExecStart={{ venv_home }}/fooservice --serve-in-foreground Restart=on-abort EnvironmentFile=/etc/sysconfig/fooservice.env [Install] WantedBy=multi-user.target /etc/sysconfig/fooservice.env PATH={{ venv_home }}/bin:/usr/local/bin:/usr/bin:/bin PYTHONIOENCODING=utf-8 PYTHONPATH={{ venv_home }}/... VIRTUAL_ENV={{ venv_home }} しかし、私は問題を抱えています。sys.pathの一部のエンティティが欠落しているため、ImportErrorsが発生します。

4
ファイルシステムから直接jinjaテンプレートをロードする方法
pocoo.orgの神社のAPIドキュメントの状態: アプリケーションのテンプレートをロードするようにJinja2を構成する最も簡単な方法は、おおよそ次のようになります。 from jinja2 import Environment, PackageLoader env = Environment(loader=PackageLoader('yourapplication', 'templates')) これにより、デフォルト設定のテンプレート環境と、アプリケーションpythonパッケージ内のtemplatesフォルダーでテンプレートを検索するローダーが作成されます。 結局のところ、これはそれほど単純ではありません。テンプレートを含むpythonパッケージを作成/インストールする必要があるため、特にコードを配布する意図がない場合は、不必要に複雑になります。こことここでこのトピックに関するSOの質問を参照できますが、答えはあいまいで満足のいくものではありません。 ナイーブな初心者がやりたいことは、明らかに、パッケージ内のリソースとしてではなく、ファイルシステムから直接テンプレートをロードすることです。 これはどのように行われますか?

9
不足している値がある場合、パンダのデータフレーム文字列列を小文字にする方法は?
次のコードは機能しません。 import pandas as pd import numpy as np df=pd.DataFrame(['ONE','Two', np.nan],columns=['x']) xLower = df["x"].map(lambda x: x.lower()) xLower = ['one'、 'two'、np.nan]を取得するには、どのように調整すればよいですか?実際のデータフレームは巨大であるため、効率は重要です。


9
Pythonスクリプトのエラー「2D配列が必要です。代わりに1D配列を取得しました:」?
このチュートリアルに従って、このML予測を行います。 import numpy as np import matplotlib.pyplot as plt from matplotlib import style style.use("ggplot") from sklearn import svm x = [1, 5, 1.5, 8, 1, 9] y = [2, 8, 1.8, 8, 0.6, 11] plt.scatter(x,y) plt.show() X = np.array([[1,2], [5,8], [1.5,1.8], [8,8], [1,0.6], [9,11]]) y = [0,1,0,1,0,1] X.reshape(1, -1) clf …

13
考えられるすべての方法でリストをペアに分割する方法
私はリストを持っています(簡単にするために6つの要素を言います) L = [0, 1, 2, 3, 4, 5] そして私はそれをすべての可能な方法でペアにチャンクしたいと思います。いくつかの構成を示します。 [(0, 1), (2, 3), (4, 5)] [(0, 1), (2, 4), (3, 5)] [(0, 1), (2, 5), (3, 4)] 等々。ここ(a, b) = (b, a)とペアの順序は重要ではありません。 [(0, 1), (2, 3), (4, 5)] = [(0, 1), (4, 5), (2, 3)] このような構成の総数は1*3*5*...*(N-1)どこN私のリストの長さです。 任意の可能なすべての構成を提供するジェネレーターをPythonで作成するにはどうすればよいNですか?
87 python 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.