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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

Q&A

2回答

919閲覧

Pandasの特定列のみJSON形式で入っている場合、Pandas DataFrameへの変換方法

moba1111

総合スコア0

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

0グッド

0クリップ

投稿2023/04/14 01:22

編集2023/04/14 02:08

実現したいこと

CSVファイルをPansasで読み込んだ、際に列contentがネストされたJSON形式になるため、
やりたいことに記載のように列として認識して扱えるように変換したい。
その際、Python,Pandasのコードで処理をしたい。
また、列contentは順不同で列候補が入っているため、そこも柔軟に対応したい。
(追記)
カラムは数十列存在しております。下記のようにファイルごとに列は順不同で過不足もあります。
なお、規則性はありません。
ファイル①の列content:列1,列2,列3,列4,列5,列6,列7,列8,列9,列10,列11,列12,列13,列14,......
ファイル②の列content:列1,列3,列4,列6,列7,列8,列9,列10,列11,列12,列13,列14,......
ファイル③の列content:列3,列2,列7,列1,列4,列13,列10,列5,列6,列8,列14,列9,列11,列12,

JSON

1{"列1": {"列2": "a","列3":"aa"},"列4":"AA","列5":"AA","列6":"AA","列7":"AA","列8":"AA","列9":"AA"...} 2{"列1": {"列2": "a","列3":"aa","列4":"aa"},"列4":"AA","列5":"AA","列7":"AA","列9":"AA"...}

しかし、ファイルごとに正しく列を持つ形に整形するだけで、マージの際に列の並び、過不足は解決できると思っております。

  • CSVファイルを読み込んだ時
indextitlecontent
1aaa{"COL1": {"col1": "a","col2":"aa"},COL2":"AA",COL3":"AA"}
2bbb{"COL1": {"col1": "b","col2":"bb"},COL2":"B",COL3":"BB"}
3ccc{"COL1": {"col2": "cc","col1":"c"},COL2":"C",COL3":"CC"}
4ddd{"COL1": {"col2": "cc","col1":"c"},COL3":"DD",COL2":"D"}
  • やりたいこと
indextitleCOL2col1col2
1aaaAaaa
2bbbBbbb
3cccCccc
4dddDdddd

前提

  • SharePointのログの解析時にログを出力するとCSVファイルを読み込んだ時のような形で格納されている。
  • PythonでSharePointのログを用いた集計を行いたい。
  • アウトプットのカラムは元のカラムがわかる形であれば、COL1.col1,COL1.col2などになっても問題ない

  ※Excelのデータ変換を行った際のカラムのイメージ

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

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

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

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

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

TakaiY

2023/04/14 01:38

> 列contentは順不同で列候補が入っているため、そこも柔軟に対応 質問のデータということならできそうですが、柔軟にとかあいまいすぎますね。 この仕様を明確にしていただけますか。
guest

回答2

0

パラメータの意味は何ですか?
I enjoyed playing papa's burgeria. The graphics and animations are colorful and cute

投稿2023/05/09 14:47

baxer

総合スコア2

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

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

0

python

1import pandas as pd 2import io 3from ast import literal_eval 4 5csv_data = ''' 6index,title,content 71,aaa,"{""COL1"": {""col1"": ""a"",""col2"":""aa""},""COL2"":""AA"",""COL3"":""AA""}" 82,bbb,"{""COL1"": {""col1"": ""b"",""col2"":""bb""},""COL2"":""B"",""COL3"":""BB""}" 93,ccc,"{""COL1"": {""col2"": ""cc"",""col1"":""c""},""COL2"":""C"",""COL3"":""CC""}" 104,ddd,"{""COL1"": {""col2"": ""cc"",""col1"":""c""},""COL3"":""DD"",""COL2"":""D""}" 11''' 12df = pd.read_csv(io.StringIO(csv_data)) 13 14# 15df['content'] = df['content'].transform(literal_eval) 16df['COL2'] = df['content'].str['COL2'] 17df['col1'] = df['content'].str['COL1'].str['col1'] 18df['col2'] = df['content'].str['COL1'].str['col2'] 19df.drop('content', axis=1, inplace=True) 20 21print(df)
indextitleCOL2col1col2
1aaaAAaaa
2bbbBbbb
3cccCccc
4dddDccc

投稿2023/04/14 01:51

melian

総合スコア20001

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.44%

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

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

質問する

関連した質問