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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

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

pandas

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

Q&A

解決済

2回答

4169閲覧

Pandasがimportできない

remoro

総合スコア5

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Python

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

pandas

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

0グッド

0クリップ

投稿2020/08/03 11:31

前提・実現したいこと

Pythonを用いてプログラムを作成中、Pandasをimportしようとするとエラーが発生する

発生している問題・エラーメッセージ

Traceback (most recent call last): File "output.py", line 1, in <module> import pandas as pd File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\__init__.py", line 11, in <module> __import__(dependency) File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\__init__.py", line 138, in <module> from . import _distributor_init File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\_distributor_init.py", line 26, in <module> WinDLL(os.path.abspath(filename)) File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 373, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。

該当のソースコード

Python

1import pandas as pd 2from apiclient.discovery import build 3from apiclient.errors import HttpError 4 5tokenizer = Popen(tokenizer_cmd, stdin=PIPE, stdout=PIPE, shell=True) 6 7API_KEY = 'API_KEY' 8YOUTUBE_API_SERVICE_NAME = 'youtube' 9YOUTUBE_API_VERSION = 'v3' 10 11CHANNEL_ID = 'CHANNEL_ID' 12channels = [] #チャンネル情報を格納する配列 13searches = [] #videoidを格納する配列 14videos = [] #各動画情報を格納する配列 15nextPagetoken = None 16nextpagetoken = None 17 18youtube = build( 19 YOUTUBE_API_SERVICE_NAME, 20 YOUTUBE_API_VERSION, 21 developerKey=API_KEY 22 ) 23 24channel_response = youtube.channels().list( 25 part = 'snippet,statistics', 26 id = CHANNEL_ID 27 ).execute() 28 29for channel_result in channel_response.get("items", []): 30 if channel_result["kind"] == "youtube#channel": 31 channels.append([channel_result["snippet"]["title"],channel_result["statistics"]["subscriberCount"],channel_result["statistics"]["videoCount"],channel_result["snippet"]["publishedAt"]]) 32 33while True: 34 if nextPagetoken != None: 35 nextpagetoken = nextPagetoken 36 37 search_response = youtube.search().list( 38 part = "snippet", 39 channelId = CHANNEL_ID, 40 maxResults = 50, 41 order = "date", 42 pageToken = nextpagetoken 43 ).execute() 44 45 for search_result in search_response.get("items", []): 46 if search_result["id"]["kind"] == "youtube#video": 47 searches.append(search_result["id"]["videoId"]) 48 49 try: 50 nextPagetoken = search_response["nextPageToken"] 51 except: 52 break 53 54for result in searches: 55 video_response = youtube.videos().list( 56 part = 'snippet,statistics', 57 id = result 58 ).execute() 59 60 for video_result in video_response.get("items", []): 61 if video_result["kind"] == "youtube#video": 62 videos.append([video_result["snippet"]["title"],video_result["statistics"]["viewCount"],video_result["statistics"]["likeCount"],video_result["statistics"]["dislikeCount"],video_result["statistics"]["commentCount"],video_result["snippet"]["publishedAt"]]) 63 64videos_report = pd.DataFrame(videos, columns=['title', 'viewCount', 'likeCount', 'dislikeCount', 'commentCount', 'publishedAt']) 65videos_report.to_csv("videos_report.csv", index=None) 66 67channel_report = pd.DataFrame(channels, columns=['title', 'subscriberCount', 'videoCount', 'publishedAt']) 68channel_report.to_csv("channels_report.csv", index=None)

試したこと

同様のOSErrorについて検索したが具体的な解決方法が見つからなかった。

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

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

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

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

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

guest

回答2

0

Anaconda と単体の Python を両方インストールしていませんか?

環境変数で PATH が両方の設定が交じるとこのようなことが起こるようです

参考:
OSError: [WinError 193] %1 is not a valid Win32 application · Issue #27693 · pytorch/pytorch
Answer: how to fix “OSError: [WinError 193] %1 is not a valid Win32 application”

もし両方インストールしているのであれば、PATH を整理するか、
どちらかをアンインストールしてみると改善するかもしれません

Windows 上での Python 実行では、
PATH は、先に定義されている方から優先して参照されるようです

質問欄のエラーメッセージからは、少なくとも単体の Python 3.8 が参照されていることがわかります:

console

1Traceback (most recent call last): 2 File "output.py", line 1, in <module> 3 import pandas as pd 4 File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\__init__.py", line 11, in <module> 5 __import__(dependency) 6 File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\__init__.py", line 138, in <module> 7 from . import _distributor_init 8 File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\_distributor_init.py", line 26, in <module> 9 WinDLL(os.path.abspath(filename)) 10 File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 373, in __init__ 11 self._handle = _dlopen(self._name, mode) 12OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。

投稿2020/08/03 11:44

y_shinoda

総合スコア3272

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

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

remoro

2020/08/03 12:50 編集

回答ありがとうございます。 一度すべての環境をアンインストールして再構築(Pythonのみインストール)したのですがやはり同様のエラーが出ます。 C:\Users\ユーザ名\Desktop>python output.py Traceback (most recent call last): File "output.py", line 1, in <module> import numpy as np File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\__init__.py", line 138, in <module> from . import _distributor_init File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\site-packages\numpy\_distributor_init.py", line 26, in <module> WinDLL(os.path.abspath(filename)) File "C:\Users\ユーザ名\AppData\Local\Programs\Python\Python38\lib\ctypes\__init__.py", line 373, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
guest

0

ベストアンサー

素人で申し訳ありません。Numpyは入っていますか?
Anacondaとかなら入っているんでしょうけど。

Pandasは、NumPyを利用してさらにAPIを拡張し、使いやすくしたものらしいからです。

コンソール画面にもうっすら記述があるような・・。

外してたらすみません・・。

投稿2020/08/03 11:35

編集2020/08/03 11:38
mako1972

総合スコア383

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

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

remoro

2020/08/03 11:38

環境の記述が不足しており申し訳ありません。 Anacondaのインストールは済んでいるのでpandasが扱えると考えていたのですが勘違いがありましたらご指摘いただけると幸いです。
mako1972

2020/08/03 11:49 編集

パスが通っていればAnaconda Powershellで conda listでモジュール一覧が確認できると思いますけど・・。
mako1972

2020/08/03 11:53 編集

サンプルが複雑なようですので(特にインポート部分) 簡単なサンプルで検証されるほうがよいと思います。 ネットから拾った簡単なサンプルですけど。。 これでエラーが発生するようならpandas関係のエラーかなんかだと思います。 でも、Anaconda+pandasでエラーになるのを経験したことがありません。 エラー画面をみると、Pythonがいろいろインストールされていて Anacondaにパスが通っていない気がします。 インストールの時にするーしてしまうと手動でパスを通す必要があったと思います。 Anaconda がインストールされているなら、ターミナルで jupyter notebookコマンドを起動するとブラウザ上でpandasを実行できると思います。 他の方のいうように、pythonのどちらかをアンインストールするか、 したほうがいいですね。 import pandas as pd df = pd.read_csv('data/src/sample.csv') print(df)
remoro

2020/08/03 12:48

AnacondaをアンインストールしてPythonのみでnumpy,pandasをインストールして実行しましたがやはり同様のエラーが出るのでpandas関係のエラーかもしれません。
mako1972

2020/08/03 13:00 編集

普通は逆ですよ。 ANACONDAいれて jupyter notebookや vs codeでお願いします。 pythonでやるにしろ パスを通さないとだめですぞ。
mako1972

2020/08/03 13:19

なんでanaconda使うのかというと パッケージごとに発生する エラーを回避するために世界中の知見を集めて 提供されている実行環境だからです。 pandasだけ上手くいけばいいなら 自己責任でハマり続けるのがいいアイディアです。
remoro

2020/08/03 13:23

授業でanacondaではなくPythonのみの環境で実行するよう指示があったところを上手くいかないのでanacondaをインストールして実行していました。 このまま進めても埒が明かないと思うので回答者様の言う通りにanacondaで実行してみます。 何度も回答&ご指摘ありがとうございます。
mako1972

2020/08/03 13:30

おや。諦めなくて良くて。 課題があるならpythonにパスを通せればと ネットには情報があふれています。
mako1972

2020/08/03 13:36

ネットで調べてpythonにパスが設定できれば pip install pandas などでインストールできるんですが。 パスが通せればコマンドプロンプトで python --versionなどで バージョン情報が表示されるのですが。
mako1972

2020/08/03 13:46

パスが通せないならコマンドプロンプトで c:\users\XX> cd c:\pyton\bin などとしてpythonのexeがある場所を指定して 一時的に、フォルダのパスを通します。 そのうえで。python --versionとコマンドを打ちます。 そこでバージョンが表示されるようなら手動でパスを通した状態ですので pip install pandas とすればいいでしょうか。 パスを通す方法がわかるまで、 cd c:\pyton\binでpythonのあるフォルダまで 移動し、pythonファイルを実行してください。 この際、パスが通っていないので、python.exeがあるフォルダに実行ファイルを入れる 必要があります。ヒントになりますか・・。
remoro

2020/08/03 13:51

Python自体のpathはインストール時にチェックボックスを入れており通っているようなので3.8のverはちゃんと表示されます。 pandasだけでなくnumpyのimportでも同様のエラーが発生します。 https://teratail.com/questions/216837 似たような質問は見つけられたのですがあまり参考にならなかったです。
remoro

2020/08/03 13:51

pandas,numpy共にインストールはできている状態です。
mako1972

2020/08/03 14:00 編集

import pandas as pd df = pd.read_csv('data/src/sample.csv') print(df) でcsvの内容が表示されなければ今日は お手上げです。
remoro

2020/08/03 14:15

やはりだめでした。 直接の原因かはわかりませんが pip install numpy をたたいた時のログ内で Collecting numpy Using cached numpy-1.19.1-cp38-cp38-win32.whl (10.9 MB) Installing collected packages: numpy Successfully installed numpy-1.19.1 とあり32bit版のnumpyがインストールされているようなのでここを解決できるように頑張ってみたいと思います。 課題を完成させて発表させるのが明日までなので今日中に頑張ってみます。 こんな初心者のためにお付き合いありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問