2016-09-19 12 views
3

私は、複数の行の値を持つファイルを読み込むために、pandasを使用してpythonスクリプトを作成しています。読んだら、私はこれらの値の配列を構築し、それをデータフレーム行の値に割り当てる必要があります。ProgrammingError:(psycopg2.ProgrammingError)は、 'numpy.ndarray'型に適合できません。

私が使用しているコードは、私はPostgresSQLのに配列データを挿入しようとすると、このコードが動作していない

import re 
import numpy as np 
import pandas as pd 
master_data = pd.DataFrame() 
temp_df = pd.DataFrame() 
new_df = pd.DataFrame() 

for f in data: 


##Reading the file in pandas which is in excel format 
# 
file_df = pd.read_excel(f) 


filename = file_df['Unnamed: 1'][2] 


##Skipping first 24 rows to get the required reading values 
column_names = ['start_time','xxx_value'] 
data_df = pd.read_excel(f, names=column_names, skiprows=25) 


array =np.array([]) 

    for i in data_df.iterrows(): 
     array = np.append(array,i[1][1]) 


    temp_df['xxx_value'] = [array] 
    temp_df['Filename'] = filename 
    temp_df['sub_id']=  
    temp_df['Filename'].str.split('_',1).str[1].str.strip() 
    temp_df['sen_site']=  
    temp_df['Filename'].str.split('_',1).str[0].str.strip() 
    temp_df['sampling_interval'] = 15 
    temp_df['start_time'] = data_df['start_time'][2] 


    new_df= new_df.append(xxx_df) 

    new_df.index = new_df.index + 1 
    new_df=new_df.sort_index() 
    new_df.index.name='record_id' 

    new_df = new_df.drop("Filename",1) ##dropping the Filename as it   
    is not needed to be loaded in postgresql 

##Rearrange to postgresql format 
column_new_df = new_df.columns.tolist() 
column_new_df. 
insert(4,column_new_df.pop(column_new_df.index('xxx_value'))) 
new_df = new_df.reindex(columns = column_new_df) 

print(new_df) 

です。それは私にエラーが表示されます ProgrammingError:(psycopg2.ProgrammingError)タイプ 'numpy.ndarray'を適合させることはできません

+1

こんにちは、私は同じ問題を抱えていて、解決策を探している間にあなたの質問に出くわしました。したがって、将来他の人がそれを解決することは価値があると思います。あなたが提供したコードサンプルを修正してください(あなたの 'for f in data:'の後にインデントが間違っていますか?)また、どのラインがエラーを投げていますか? –

答えて

0

私はあなたのコードであなたのコードを見ることができないので、 Postgresにデータを挿入します。

psigopg2はNumpyのデータ型を扱うことはできませんが、psycopg2で動作するネイティブのPythonの型に変換するのはかなり簡単です(例:.tolist (メソッド)では、コードなしでより正確な情報を与えることは困難です)。

関連する問題