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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

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

pandas

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

Q&A

解決済

1回答

8176閲覧

Dataをcsvに、csvをDataにしたい。

taboopython

総合スコア40

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

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

pandas

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

0グッド

1クリップ

投稿2020/01/11 01:01

編集2020/01/11 01:07

次の①、②、③を繰り返し、csvを加工したいのですが、

 ①DataFrameをcsvにする。
②csvをDataFrameにする。
③新しい行を追加する

csvを思うような形にできず、
またDataFrameをうまく作れません。

1、Dataをcsvする方法と
2、csvをDataする方法について
良い手段があればご教示いただきたくお願いいたします。

例えば、
次のDataを、csvにしたく、こんな感じで実行しています。
が、

python

1word = { 2 '時間' : 'time', 3 'お金' : 'money', 4 '母' : 'mother', 5 '父' : 'father', 6 'リンゴ' : 'apple', 7 '犬' : 'dog', 8 'ネコ' : 'cat', 9 '食べ物' : 'food', 10 '神' : 'god', 11 } 12 13In [] word.to_csv('word.csv')

AttributeError: 'dict' object has no attribute 'to_csv’とエラーが出てきてしまいます。

逆に、csvをDataにするにあたり、

元のcsvを

csv_wordlist

1name1,name2 2時間,time 3お金,money 4母,mother 5父,father 6リンゴ,apple 7犬,dog 8ネコ,cat 9食べ物,food 10神,god

ーーーーーーーー

python

1wordlist = pd.read_csv('wordlist.csv') 2wordlist.to_csv('newwordlist.csv') 3

のようにすると、こんな感じで、一番左に列インデックス?が出てきてしまいます。

csv_newwordlist

1,name1,name2 20,時間,time 31,お金,money 42,母,mother 53,父,father 64,リンゴ,apple 75,犬,dog 86,ネコ,cat 97,食べ物,food 108,神,god

csvを元の次のような形にして保存しつつ、読み取った時には下の出力時のイメージのようにcsvを保存する(もしくは出力する)にはどうすれば良いでしょうか?

<csvの元イメージ>
name1,name2
時間,time
お金,money
母,mother
父,father
リンゴ,apple
犬,dog
ネコ,cat
食べ物,food
神,god

<出力時のイメージ>
{
'時間' : 'time',
'お金' : 'money',
'母' : 'mother',
'父' : 'father',
'リンゴ' : 'apple',
'犬' : 'dog',
'ネコ' : 'cat',
'食べ物' : 'food',
'神' : 'god',

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

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

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

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

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

guest

回答1

0

ベストアンサー

1、Dataをcsvする方法

一度pandas.DataFrameに変換する必要があります。

python

1import pandas as pd 2df = pd.DataFrame(word.items(), columns=['name1', 'name2']) 3df.to_csv('word.csv', index=False) # csv出力

ここで、以下は

こんな感じで、一番左に列インデックス?が出てきてしまいます。

csv出力時に.to_csv(filename, index=False)のようにindex引数にTrueを渡すと左の余計な列は出てこなくなります。

2. csvをDataにする方法

to_dictでpandas.DataFrame.to_dict()で辞書に変換してから、要望の形に整形する流れをとるのはどうでしょうか。

python

1df = pd.read_csv(wordlist.csv) 2data = df.to_dict(orient='split') 3# data => 4# { 5# 'index': [0, 1, 2, 3, 4, 5, 6, 7, 8], 6# 'columns': ['name1', 'name2'], 7# 'data': [['時間', 'time'], 8# ['お金', 'money'], 9# ... 10# ['神', 'god']] 11# } 12 13out = dict(data.get('data')) 14# { 15# '時間': 'time', 16# 'お金': 'money', 17# ... 18# '神': 'god' 19# }

投稿2020/01/12 00:20

T.Tom

総合スコア58

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

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

taboopython

2020/01/12 01:14

ありがとうございます!ばっちりできました! index引数、dict の機能と、getメソッド?の理解を深めておきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問