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

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

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

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

Python

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

Q&A

解決済

2回答

7923閲覧

数値を転置してcsvファイルに出力

iwhr

総合スコア15

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2019/05/23 10:10

前提・実現したいこと

exampleの中身の数値を転置してエクセルCSVファイルに出力したいのですが、うまくできません。
(Excelに出力する際、画像のように横並びにはできますが、縦並びにしたいと考えています。)
よろしくお願いいたします。
exampleの中身は写真のようになります。イメージ説明
イメージ説明

発生している問題・エラーメッセージ

'list' object is not callable

該当のソースコード

python3

1data = example 2csvfile = open ('Test.csv','w',newline="") 3writer=csv.writer(csvfile) 4writer.writerow(['Test']) 5chatable = ([data]) 6chatable_r = list(map(list,zip(*chatable)))#列と行を入れ替える 7writer.writerows(chatable_r) 8csvfile.close()

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

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

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

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

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

hayataka2049

2019/05/23 12:10

本題とは関係ない指摘なのですが、 'list' object is not callable が出るということは、 list = ... を実行してしまっているかもしれません。Jupyterならずっと以前実行した結果が残っている可能性もありますし、そうでなければ自分で書いたコード上のどこかに含まれていると思います。 pythonの仕様上、標準の関数・クラスなどと同じ変数名を使うと上書きしてしまいますので、ご注意ください。
iwhr

2019/05/23 23:37

ご回答いただきありがとうございます。 調べてみます。
iwhr

2019/05/23 23:45

おっしゃる通り、どこかでlistを実行していました。 私が書いた上記のプログラムでうまく動きましたので、以前実行した結果が残っていたようです。 ありがとうございました。
guest

回答2

0

numpy をお使いください。

  1. loadtxt() で CSV を読み込む。

delimiter=',': カンマ区切り
skiprows=1: 1行目の Test をスキップ

  1. ndarray.T で転置した配列を savetxt() で保存する。

header='Test', comments='': 1行目に Test と書き込む。

python

1import numpy as np 2 3a = np.loadtxt('test.csv', delimiter=',', skiprows=1, ndmin=2) 4np.savetxt('transposed.csv', a.T, header='Test', comments='')

標準ライブラリでやる場合

python

1import csv 2 3with open('test.csv') as f: 4 data = list(csv.reader(f)) 5 6with open('transposed.csv', 'w', newline='') as f: 7 writer = csv.writer(f) 8 print(data[0]) 9 10 writer.writerow(data[0]) 11 for val in data[1]: 12 print(len(val)) 13 writer.writerow([val])

投稿2019/05/23 10:20

編集2019/05/23 10:29
tiitoi

総合スコア21956

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

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

iwhr

2019/05/23 23:38

ご回答いただきありがとうございました。 ご教示いただいた手法を試してみたいと思います。
guest

0

ベストアンサー

pandasを使うという方法もあります。

Python

1import pandas as pd 2 3example=[1.1,2.2,3.3] 4pd.DataFrame({'Test':example}).to_csv('Test.csv', index=None)

この方法であれば、CSVではなくExcelファイルを生成することも可能です。

Python

1pd.DataFrame({'Test':example}).to_excel('Test.xlsx', index=None)

投稿2019/05/23 23:21

magichan

総合スコア15898

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

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

iwhr

2019/05/23 23:37

ご回答いただきありがとうございました。 ご教示いただいた手法を試してみたいと思います。
iwhr

2019/05/23 23:48

ご教示いただいたプログラムでも無事転置して配列することができました。 今回はmagichanさんの回答をベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問