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

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

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

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

Q&A

解決済

3回答

641閲覧

Pythonで配列をパソコンの指定のフォルダ(D:\フォルダ)にcsvファイルで出力したい

OutgoingDuffer

総合スコア2

Python 3.x

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

0グッド

0クリップ

投稿2020/04/22 11:20

編集2020/04/23 02:02
Pythonで以下の配列をパソコンの指定のフォルダ(D:\フォルダ)にcsvファイルで出力したいのですが、 どう実装してよいのか分かりません。 ① 配列 [{'@attributes': {'order': 0}, 'id': '001', 'update_date': '2020-04-19', 'name': 'AAA': 0}} {'@attributes': {'order': 1}, 'id': '002', 'update_date': '2020-04-03', 'name': 'BBB': 0}} ② 出力したい状態 order,id,update_date,name 0,001,2020-04-19,AAA 1,002,2020-04-03,BBB ### 発生している問題 思ったようにCSVできない。 ### 該当のソースコード df = pd.DataFrame([配列]) df.to_csv(\"D:\任意の名前.csv\")\n", ```ここに言語名を入力 Python

試したこと

ネットで調べデータフレームに格納してCSVに出力できましたが、出力したい状態にはできませんでした。

補足情報(FW/ツールのバージョンなど)イメージ説明

パソコンはWindows10(64bit)、Jupyter Notebookで実装してます。

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

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

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

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

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

meg_

2020/04/22 11:32

「出力したい状態にはできませんでした」とはどのような状態になったのでしょうか?
OutgoingDuffer

2020/04/22 23:58

ご質問ありがとうございます。うまく伝えられず困っておりましたので、質問いただいて助かります。 Q どのような状態になった  →「該当のソースコード」を実装したところ、列に「0,1,2,3,・・・」、行に「0,1,2,3,・・・」の項番、   0列、0行目に「{'@attributes': {'order': 0}, 'id': '001', 'update_date': '2020-04-19', 'name': 'AAA': 0}」が1列、0行目に「{'@attributes': {'order': 1}, 'id': '002', 'update_date': '2020-04-03', 'name': 'BBB': 0}」と出力され、出力したい状態にできませんでした。 どのようにしたらよいのでしょうか?
meg_

2020/04/23 00:52

すみません。文字だけでは良く分かりません。 1.「配列」と言っているのはリストのことですか? 2.df を「print(df)」するとどうなりますか?
OutgoingDuffer

2020/04/23 02:03

わかりずらくすいません。 1 リストです。 2 print(df)の結果を補足情報に載せました。 よろしくお願いします。
guest

回答3

0

簡単な例です。 
※辞書の一部が入れ子になっていましたので対応しました。
※列の並び等は必要に応じて変更ください。

Python

1import pandas as pd 2 3a = [{'@attributes': {'order': 0}, 'id': '001', 'update_date': '2020-04-19', 'name': 'AAA'},{'@attributes': {'order': 1}, 'id': '002', 'update_date': '2020-04-03', 'name': 'BBB'}] 4 5df = pd.DataFrame(a) 6print(df) 7# @attributes id name update_date 8#0 {'order': 0} 001 AAA 2020-04-19 9#1 {'order': 1} 002 BBB 2020-04-03 10for i in a: 11 b = i.pop('@attributes') 12 i[list(b.keys())[0]] = list(b.values())[0] 13print(a) 14 15df = pd.DataFrame(a) 16print(df) 17# id name order update_date 18#0 001 AAA 0 2020-04-19 19#1 002 BBB 1 2020-04-03 20 21df.to_csv('test.csv')

質問に記載の辞書データではエラーが出ましたので、こちらで一部修正しています。
元データの修正が必要かもしれません。

投稿2020/04/23 02:45

meg_

総合スコア10760

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

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

OutgoingDuffer

2020/04/23 04:49

いろいろと対応いただき感謝いたします。 ありがとうございました。
guest

0

ファイル名の指定の仕方が分からないと言うことですかね。
D:\フォルダ\任意の名前.csvに保存する場合、

Python

1df.to_csv("D:/フォルダ/任意の名前.csv") 2または、 3df.to_csv(r"D:\フォルダ\任意の名前.csv") 4または、 5df.to_csv("D:\フォルダ\任意の名前.csv")

投稿2020/04/22 11:49

otn

総合スコア85901

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

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

OutgoingDuffer

2020/04/23 04:28

csvへの出力はご回答のとおりでできました。
guest

0

自己解決

いろいろと情報をいただきありがとうございました。
調べて以下のとおり実装したらうまくいきました。
ありがとうございました。

a_list = [] b_list = [] for i in range(len(リスト名)): a_list.append(リスト名[i]["抽出したい文字①"]) b_list.append(リスト名[i]["抽出したい文字②"]) df = pd.DataFrame({'name':a_list,'url':b_list}) df.to_csv(\"D:\任意の名前.csv\")\n"

投稿2020/04/23 04:46

OutgoingDuffer

総合スコア2

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問