実現したいこと
- 読み込んだデータの2列目('code')・3列目('name')を抽出したいです。
- いろんなサイトを調べてみたのですが・・・どなたか教えてください! よろしくお願いします!!
前提
- pandas をインストールしました。
- 読み込んだデータは以下のような内容です。
python
1>>> data 2 fy code name flag 30 13012020 1301 20AA01485 1 41 13012020 1301 20AA13754 0 52 13012020 1301 20AA07191 0 63 13012020 1301 20AA32595 0 74 13012020 1301 20AA26662 0 8... ... ... ... ... 939818 99972020 9997 20AA20876 0 1039819 99972020 9997 20AA06345 0 1139820 99972020 9997 20AA29153 0 1239821 99972020 9997 20AA26897 0 1339822 99972020 9997 20AA12791 0
発生している問題・エラーメッセージ
>>> dt = data[:, 2:3] Traceback (most recent call last): File "C:\Users\lisaco\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 3802, in get_loc return self._engine.get_loc(casted_key) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc File "pandas\_libs\index.pyx", line 144, in pandas._libs.index.IndexEngine.get_loc TypeError: '(slice(None, None, None), slice(2, 3, None))' is an invalid key During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Users\lisaco\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\frame.py", line 3807, in __getitem__ indexer = self.columns.get_loc(key) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\lisaco\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 3809, in get_loc self._check_indexing_error(key) File "C:\Users\lisaco\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 5925, in _check_indexing_error raise InvalidIndexError(key) pandas.errors.InvalidIndexError: (slice(None, None, None), slice(2, 3, None))
該当のソースコード
python
1python -m pip install pandas 2import pandas as pd 3 4data = pd.read_table("C:/Users/losaco/Desktop/data_0131/data2020.txt", 5 encoding="utf-8") 6 7dt = data[:, 2:3] #ここでエラー発生
print(data.info())した結果を提示ください。
なんとなく、ちゃんと列ごとに分かれて読み込まれていないような気がしますので。
dt = data[['code', 'name']]

can110さん、ありがとうございます。以下のような結果になりました。
``````
>>> print(data.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 39823 entries, 0 to 39822
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 fy 39823 non-null int64
1 code 39823 non-null int64
2 name 39823 non-null object
3 CEO 39823 non-null int64
dtypes: int64(3), object(1)
memory usage: 1.2+ MB
None

melianさん、ありがとうございます!!
その後、python&pandasでトライ中です。早々に躓いていますが・・
できました。
dt = data[['code', 'name']]
先程のエラーは私のミスです。申し訳ありませんでした。
ありがとうございます。

can110さんも、ありがとうございました!
※ 入れ違いのため削除

melianさん、ベストアンサーに選びたいんですが、回答枠に再度記載くださいませんか?
お手数おかけして申し訳ありません・・・!
ありがとうございます。回答しました。

回答1件
あなたの回答
tips
プレビュー