2017-12-01 10 views
1

私はライターを使ってPythonでcsvファイルを作成しました。私はこのcsvファイルを "data"と呼んでいました。これは40列の1列で構成されています。次に、このcsvファイルを新しいPythonスクリプトでインポートし、データフレームを作成します。しかし、私の新しいデータフレームでは、これらの40個のデータポイントをそれぞれ10行の4列に分割したいと考えています。私がこれまで試してみましたが、以下である:Pythonのデータフレーム内のcsvファイルから列を追加します

data=pandas.read_csv("location/data.csv", header=None) 
    frame=pandas.DataFrame(data[:10]) 
    frame['second column']=data[10:20] 

これが「第二の柱」と呼ばれるデータフレーム「フレーム」の新しい列を作成しますが、すべてのエントリがNANです。 pythonがcsvファイルからこれらのエントリを認識できないようです。どんな助けでも大歓迎です。これにより

Var1="data" 
    with open(Var1,"ab") as output: 
      writer=csv.writer(output, lineterminator='\n') 
      for val in variable: 
       writer.writerow([val]) 

私は基本的に独立したcsvファイルに配列「変数」の値を保存:以下は、私はcsvファイルを作成するために使用するコードです。

答えて

1

これは最も洗練された解決策ではありませんが、私はあなたの問題を解決すると思います。

import numpy as np 
import pandas as pd 

x = list(range(0, 40)) 
data = pd.DataFrame(x, columns=["A"]) 
arr = data.as_matrix() 

data = pd.DataFrame(arr.reshape((10, 4), order="F"), 
        columns=['A', 'B', 'C', 'D']) 

単に"F"から"C"orderパラメータを変更作り直さdataで順序を変更するには。

+1

私は 'arr'は、あなたが' arr = np.asarray(range(0,40))[:,]で同じことを行うことができる場合には、 None] 'を実行し、リスト - > Dataframe-> numpy.arrayに移動する必要はありません。 – GPhilo

+1

OPが使用していた出発点、具体的には、「データ」という名前のデータフレームを複製しようとしていました。しかし、このコードをありがとう。私は、「np.newaxis」が単なる「なし」であることに気付かなかった。 – GeneticsGuy

関連する問題