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

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

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

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

pandas

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

Q&A

解決済

1回答

2562閲覧

python explode関数のエラー回避の方法

Shiro.Shiro

総合スコア9

Python

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

pandas

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

0グッド

0クリップ

投稿2020/10/09 12:06

編集2020/10/10 05:02

以前、https://teratail.com/questions/294887 で、pandasのDataFrameに含まれる各要素を、","を区切り文字として、そこで改行を行うコードを以下の通り、教えて頂きました。
その際には実行できたのですが、現在、以下のError文の通り、'Series' object has no attribute 'explode'と出力されてしまうのみです。

その原因と解決方法についてお教えいただきたいです。

ご回答のほどどうかよろしくお願い致します。

バージョンはjupyter lab(0.35.3)、Python(3.7.1)になります。

Python

1import pandas as pd 2df = pd.DataFrame({'A':['abc,def','aaaaa','bbbb']}) 3print(df) 4# A 5# 0 abc,def 6# 1 aaaaa 7# 2 bbbb 8 9df2 = df.copy() 10df2['A'] = [i.split(',') for i in df['A']] 11df2 = pd.DataFrame(df2['A'].explode()) 12df = df.reset_index(drop=True) 13print(df2) 14# A 15# 0 abc 16# 1 def 17# 2 aaaaa 18# 3 bbbb

Error

1--------------------------------------------------------------------------- 2AttributeError Traceback (most recent call last) 3<ipython-input-1-c1b24f3157bf> in <module> 4 6 df2 = df.copy() 5 7 df2['A'] = [i.split(',') for i in df['A']] 6----> 8 df2 = pd.DataFrame(df2['A'].explode()) 7 9 df = df.reset_index(drop=True) 8 10 print(df2) 9 10~\Anaconda3\lib\site-packages\pandas\core\generic.py in __getattr__(self, name) 11 4374 if self._info_axis._can_hold_identifiers_and_holds_name(name): 12 4375 return self[name] 13-> 4376 return object.__getattribute__(self, name) 14 4377 15 4378 def __setattr__(self, name, value): 16 17AttributeError: 'Series' object has no attribute 'explode'

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

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

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

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

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

guest

回答1

0

ベストアンサー

提示いただいたコードは普通に実行可能です。
jupyter labは、過去の計算履歴が残っていることがあります。いったん履歴をクリアして試してみてください。

いちおう、手元のjupyter labを新規に立ち上げて実行してみた画面キャプチャも添付します。
jupyterlabが古すぎて、pandasのバージョンが古いのかもしれません。私のはjupyter-labはv2.2.8、pandasはv1.1.3です。pip install -U pandasを実行してみてください。

イメージ説明

投稿2020/10/09 12:15

編集2020/10/10 05:21
toast-uz

総合スコア3266

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

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

Shiro.Shiro

2020/10/10 05:07 編集

ご回答ありがとうございます。Kernelをリスタートする、jupyterlabを閉じて、開きなおす、等をして再実行してみましたが、状況は変わりませんでした、、。toast-uz様がおっしゃる「履歴をクリアする」とはこのような対処ではない、ということでしょうか?質問内容に出力されるエラー文も追加させていただきました。
toast-uz

2020/10/10 05:21

pandasのバージョンが古いと思いますので、回答追記しました。
Shiro.Shiro

2020/10/10 05:46

バージョンアップで解決できました!いつもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問