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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

pandas

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

解決済

区切り文字のあるListデータからpandasの列毎に区切られたDataFrameへの変換がうまく出来ません。

FM_TOWNS
FM_TOWNS

総合スコア55

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

pandas

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

2回答

0評価

0クリップ

337閲覧

投稿2022/01/17 06:11

今回、初めての質問です。Markdown記述含め、要を得ませんが、何卒よろしくお願いします。

Jupyter Notebookで勉強中です。

以下のリストファイルがあります。
名称は、outputとしています。
このリスト(カンマ区切り有り)のpandasのDataFrameへの取り込みで区切った上で、DataFrameの各コラムとしたいのですが、進まず、今回質問させていただいているところです。

事前のインポートライブラリは以下の通りです。

引用テキスト

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import string

  • リスト

0 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
1 [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
2 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
3 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
4 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...

データタイプは、print(type(output))とすると、
<class 'pandas.core.series.Series'>
と返されてきます。

上記リストに対し、
<コード>
In
df_amenities=pd.DataFrame(output,columns=["sign"])
Out
df_amenities
sign
0 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
1 [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
2 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
3 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, ...
4 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...
となり、これに対し、column[sign]でカンマ(,)により区切りされるよう、
In
df_amenities["sign"]=df_amenities["sign"].str.split(",", expand=True)
としたところ、エラーなく処理はされたものの、
Out
df_amenities
sign
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
となり、全てデータなし状態になってしまいました。

当方としては、最終的には、pandasのDataFrameとなり、以下のイメージのようなものが出来ることろを期待しています。
イメージ説明
※0,1の数字展開自体は、あくまで例示です。

なお、columnのラベルは、最終的には、固有名詞(具体的には、不動産の設備名)に置き換える予定です。
横方向は、各不動産で、要は各不動産毎の設備を0or1で把握したい、というものです。
区切りされる0or1のデータ数は、columnのラベル数と一致する筈です。

各不動産毎の設備有無を0,1化したdataframeの完成を目指しています。

全くの初心者で、要を得ないところばかりですが、ご教授をいただけますと、大変ありがたいです。

よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

melian

2022/01/17 06:36

output の型は pandas.core.series.Series とのことですが、何か元になるファイルがあって、それを読み込んで output を作成したのでしょうか? その部分の処理が判れば、直接データフレームに変換できるかもしれません。
FM_TOWNS

2022/01/19 02:37

追記、ありがとうございます。 今回、初めての質問で、この追記・質問欄の使い方も十分に理解できていないと思いますが、不手際がありましたら、ご容赦願います。 outputは、ご推察の通りです。いろいろな設備(駐車場、Wifi等々)がcolumn内に["駐車場","Wifi",…]と物件毎(行毎)に並んだDataFrameがあり、これに対し、0,1化を行い、こういう設備の有無が賃貸契約に結びつきやすいか等の回帰分析に使いたい、というところです。 これら設備は、要らない文字の削除、空白の詰め等を行い、listにしました。 当リストは、print(type(f_list))とすると、<class 'list'>と返されています。 いただいた質問に対し、誠に恐縮ですが、sign0~のcolumn名をf_listに置き換えたく、以下を組みました。 df_amenities2.set_axis([amn_list]).axis='columns' df_amenities2はいただいた構文でsign0~のcolumn名を付り直し、0,1の区切りを取って展開したDataFrameです。 結果は、 Length mismatch: Expected axis has 76619 elements, new values have 476 elements というエラーになりました。 listはprint(len(f_list))で476が返されおり、df_amenities2も76619 rows × 476 columnsという返しになっています。 column数としては合っている、と思ったのですが、当方の力量では、これ以上は対処が思いつきません。 まことに恐縮しておりますが、ご教示いたたけますと幸いです。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

pandas

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