質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

1回答

2465閲覧

VSCodeに"文字列"の補完機能はありますか?

SSi

総合スコア6

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

2クリップ

投稿2021/11/26 00:07

編集2021/11/26 10:16

質問

現在、VSCode上でpandasを使用したdataframeのデータ加工を学んでいます。
コードを記述する際、以下のようにカラム名を文字列で指定することが多くあります。

html

1df["item_name"] = df["item_name"].str.upper()

この時、

html

1df["item_name"] = df["it

この時点で、補完機能が先に入力した文字列を学習して『item_name』をサジェストしてほしいため、そういった拡張機能を探しています。

settings.json

html

1{ 2 "files.autoGuessEncoding": true, 3 "python.venvPath": "%ローカルpython仮想環境パス%", 4 "security.workspace.trust.untrustedFiles": "open", 5 "python.autoComplete.extraPaths": [ 6 "%ローカルpython仮想環境パス%\Lib\site-packages" 7 ], 8 "python.analysis.extraPaths": [ 9 "%ローカルpython仮想環境パス%\Lib\site-packages" 10 ] 11}

※『ローカルpython仮想環境パス』はマスク値

使用ツール

Visual Studio Code v1.62.3
python 3.10.0
pandas 1.3.4
windows 11

余談

補完はそれ自体が「補間、インテリエンス、予測変換」など似た言葉が沢山あって調べにくい上、多くが変数や関数についてであり、欠損データの補完など別の意味も出てきてしまい、上手くgoogle検索できずにネット迷子になってしまいました。
お手数をおかけいたしますが、有識者様の経験をお聞きできれば幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Crimson_Tide

2021/11/26 09:34

恐らく無効にするような特段の設定をしてなければご希望のサジェストは機能するかと思いますが機能していないでしょうか? 機能していないようであれば、settings.jsonを質問欄に追記して頂けますか。
SSi

2021/11/26 10:22

コメントありがとうございます。 再度確認を行いましたが、カラムの文字列ではサジェストが機能しませんでした。 そのため、settings.jsonの追記と、使用ツールにOSがwindows11であることを追記しました。 お忙しいところ恐縮ではございますが、ご確認いただけますでしょうか。
Crimson_Tide

2021/11/26 11:42 編集

settings.jsonの追記ありがとうございます。 見る限りサジェストを抑止するような設定は見受けられないですね。 掲載して頂いたのは下記パスのもので間違いないでしょうか C:\Users\username\AppData\Roaming\Code\User\settings.json ワークスペースやフォルダの.vscodeフォルダにsettings.jsonがあると、そちらの内容が優先されますが、特に設定はしていないでしょうか。 ※-------で囲まれた下記コメントに関する検証は不要です -------------------------------------------------------------------------- web版のVSCode(https://vscode.dev/)にアクセスして、適当に .pyファイルを作成 以下を入力 df["item_name"] = df["i iを入力した時点でitem_nameのサジェスト候補が表示されました。 念の為試してみてください。 なんとも言えませんが、可能性として思いつくのは、何かしらの拡張機能が悪さしてるか、Windows11の不具合でしょうか。 以下を試すことで問題の切り分けができるかもしれません。 1)拡張機能を一度可能な範囲で無効にして立ち上げ直して試す 2)設定の同期をした上で、VSCodeアンインストールして C:\Users\username\AppData\Roaming\Code\ をバックアップした上で削除。 VSCodeを再インストールして、設定同期しないまっさらな状態で試してみる --------------------------------------------------------------------------
Crimson_Tide

2021/11/26 11:27

自分の環境にご提示のsettings.jsonを置き換えて試してみたところ、たしかにサジェストされないですね。 ちょっと確認してみます。
Crimson_Tide

2021/11/26 11:39

settings.jsonに以下を追加してみてください。多分必要ないですが、変わらなければVSCode立ち上げ直してみてください。 "editor.quickSuggestions": true,
SSi

2021/11/26 11:49

対応してくださりありがとうございます。 箇条書きにて回答いたします。 ・『"editor.quickSuggestions": true,』を追加し、VSCodeを立ち上げ直したところ、サジェストは表示されませんでした。 ・settings.jsonは指摘いただいたパスで間違いありません。 ・web版のVSCodeで『df["item_name"] = df["i』を入力したところ、サジェストは表示されませんでした。 ・再インストールはこれから試します。少々お待ちください。
SSi

2021/11/26 12:02

VSCodeのアンインストール → Roaming配下のCodeフォルダを削除(bk) → 再インストール を実施し、settings.jsonに何も記載がないことを確認後、新規pyファイルで『df["item_name"] = df["i』を入力しましたが、サジェストが出ませんでした。
SSi

2021/11/26 12:14

問題の解決はしておりませんが、「通常であれば拡張機能無しに文字列にもサジェストが働く = おそらく私の環境(設定orOS)が悪い」ということが知れただけでもスッキリいたしました。 これ以上は私側でこれまでの行動を思い返しながら調査していくのが良いでしょう。 環境を見直したり、settings.jsonの設定方法を漁ってみたりしようと思います。 この度は真摯に対応してくださりありがとうございます。よろしければいずれかのコメントを回答に登録して頂き、こちらでベストアンサーとさせて頂きます。
Crimson_Tide

2021/11/26 12:40

色々と対応して頂いたにも関わらず、解決に至らず申し訳無いです。 記載ミスの可能性を思慮しており、お手数でなければ、『"editor.quickSuggestions": true,』を追記したsettings.jsonを質問欄に追記して頂ければ確認いたします。 解決に至る回答を提示できませんでしたし、別の方から適切な回答を得られるかもしれませんので、私は回答はいたしません。 解決していないわけですし、このままの状態で良いのではないでしょうか。
SSi

2021/11/26 13:08

承知しました。こちらで設定したsettings.jsonが以下になります。 ※再インストール後、bkから復元したもの。『"editor.quickSuggestions": true』のみ設定したsettings.jsonでも変わらず。 { "files.autoGuessEncoding": true, "editor.quickSuggestions": true, "python.venvPath": "%ローカルpython仮想環境パス%", "security.workspace.trust.untrustedFiles": "open", "python.autoComplete.extraPaths": [ "%ローカルpython仮想環境パス%\\Lib\\site-packages" ], "python.analysis.extraPaths": [ "%ローカルpython仮想環境パス%\\Lib\\site-packages" ] }
Crimson_Tide

2021/11/26 14:25

掲載ありがとうございます。 記載のミスはなさそうです。 VSCodeを一切導入していないPC(Windows10pro)でVSCodeをインストール、拡張機能はJapan language packだけ。 この状態で何も設定しなければ、サジェスト機能なし。 掲載して頂いたsettings.jsonを適用してみましたが、サジェストは機能しました。 拡張子は.pyです。 ちなみに下記状態で df["item_name"] = df[" "のあとにiを入力したタイミングで [item_name]が候補に表示される機能ですが、認識はあっていますでしょうか? コピペで df["item_name"] = df["it を貼り付けただけでは表示されません。 この状態でitの後ろでeを入力すると再度 [item_name]が候補として表示されます。
SSi

2021/11/26 23:12

そうですか。。こちらの手元にwindows11端末しかなく、そちらの検証を再現してフィードバックすることができずすみません。特に考えずにwindows11にアップデートしてしまいましたが、あまり良くないですね。 貼り付けではなく、入力過程でサジェストが出ないことを確認済みです。
Crimson_Tide

2021/11/27 04:28

Windows11が原因と確定したわけではないと思います。 https://vscode.dev/での検証の件ですが、以前設定を同期しておりその設定がどうも残っていたようです。 https://vscode.dev/を使用していない別端末のブラウザの別ブラウザで試したところ、サジェストは機能しませんでした。ですのでSSi様の検証でも動作しないのは正常かと思います。申し訳ありませんでした。 https://vscode.dev/ での話ではありますが、settings.jsonを以下のようにし、 { "editor.quickSuggestions": true, "[python]": { "editor.wordBasedSuggestions": true }, } 且つ、pythonの拡張機能を入れたところサジェストが動作しました。 WEB版での話ではありますが、アプリ版でも settings.jsonに以下を追加してみる、pythonの拡張機能を導入してなければ入れてみる、というのを試してみてもいいかと思います。 "[python]": { "editor.wordBasedSuggestions": true }, ※起動直後は拡張機能がソースを判断するのに時間が数秒かかります
退会済みユーザー

退会済みユーザー

2021/11/27 13:59

pythonの設定方法が間違ってる気がします。 "python.autoComplete.extraPaths"、"python.analysis.extraPaths"、"python.venvPath" これらの設定はpythonの環境を設定する場所ではありません。 .pyファイルを開くとウィンドウ左下にpythonのバージョンもしくはselect python interpreterみたいな表示が出るので、それをクリックして使いたいpythonを選択してみてください。(選択した後はVSCodeの再起動) 正常にpythonが認識されればコード補完とかの機能が動くようになるはずです。 それでもうまくいかない時は一度setteings.jsonの設定内容を全て消してから上記の方法でpythonを設定してみてください。 Googleの日本語検索だと何故かマイクロソフトの公式ドキュメントではなく個人ブログの古い情報やQiitaの嘘記事などのノイズが上位に来てしまうことがよくあるので正しい情報が得にくいと思います。 正確な情報が欲しいなら公式ドキュメント参考にしましょう。 https://code.visualstudio.com/docs/python/python-tutorial 英語ですが最近ならページ翻訳とかもあるので読めると思います。
guest

回答1

0

お手数をおかけいたしますが、有識者様の経験をお聞きできれば幸いです。

Pythonにそのような拡張があるかは把握していませんが、VSCodeの技術的には問題ないと考えます。

TypeScriptでは、document.createElement(タグ名)のような、特定の文字列を引数に指定するメソッドに関しても、文字列をサジェストしてくれます。

投稿2021/11/26 00:26

編集2021/11/26 00:27
maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SSi

2021/11/26 08:54

たしかAtomが初期設定で一度記載した半角英字文字列のサジェストを出してくれるので、私としても「不可能ではないはず」といった所感を持っているのですが、これといった設定or拡張機能を見つけられていない状態です。 ただ、現在90Viewある状態で明確な回答を貰えていませんので、もしかするとpythonユーザーの中で珍しい設定なのかもしれません。(もしくは、私の質問の仕方が悪い。) 一旦、ageてみて拡張機能を知っている方がいないかもう少し待ってみようかと思います。 回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問