web-dev-qa-db-ja.com

パンダ:データフレームto_csv、列名を設定する方法

コードスニペット:

import numpy as np
import pandas as pd
myseries=pd.Series(np.random.randn(5))
df=pd.DataFrame(myseries)
df.to_csv("output.csv")

出力:

      0
0    0.51..
1    0.14..
2    -0.68..
3    0.48..
4    1.89..

列名を0ではなく「値」にしたいのですが、どうすればよいですか?
最後のステートメントをdf.to_csv( "output.csv"、columns = ["values"])に置き換える必要があると思います。しかし、私はキーエラーを得ました:u"None of [['values']] are in the [columns]"意味がわかりません。

[更新]
多くの回答では、df.columns=['values']。まあ、それは私にとってはうまくいきません。私は、データフレームがどのようなものであるかだけでなく、csvファイルがどのようなものであるかも懸念しています。データフレームは大丈夫に見えますが、csvファイルはそうではありません。それは紛らわしい部分です。

...
df.columns=["values"]
df.to_csv("output.csv")

それは言う:IOError: [Errno 13] Permission denied: 'output.csv'
次に、絶対パス「C:\ Users\myname\Desktop\output.csv」を使用すると、エラーは次のようになります:IOError: [Errno 13] Permission denied: 'C:\\Users\\myname\\Desktop\\output.csv'このエラーの理由はわかりませんが、これはかなりわかりにくいです。
詳細については、winac 10にanaconda-2.7をインストールしました。スパイダーでコードをテストしました。

6
dudu

DataFrameコンストラクターで列名を設定できます。

df = pd.DataFrame(myseries, columns=['values'])
df.to_csv("output.csv")

または:

df = pd.DataFrame({'values':myseries})
print (df)
     values
0 -0.429758
1 -0.019931
2  1.189596
3  1.309223
4 -0.337061

df.to_csv("output.csv")

または、パラメータheaderDataFrame.to_csv

df = pd.DataFrame(myseries)
df.to_csv("output.csv", header=['values'])

または Series.to_csv

myseries.to_csv("output.csv", header=['values'])
9
jezrael

列名を「値」に設定するには、次を試してください。

    df.columns = ['values']
4
df.columns = ['values']

質問する前に、さらに調査してください。

0

以下のエラーが発生します:

says:IOError: [Errno 13] Permission denied: 'output.csv'.

私は同じエラーを受け取っていましたが、問題はExcelでファイルを開いていたため、プログラムが同じディレクトリに同じファイル名で書き込もうとしたときにこのエラーが発生していました。

0
Sachin Mahesh