【发布时间】:2021-03-30 01:33:32
【问题描述】:
我正在使用 pandas 创建一个 python 脚本来读取具有多个行值的文件。
读取后,我需要构建这些值的数组,然后将其分配给数据框行值。
我使用的代码是
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)
当我尝试将数组数据插入 Postgresql 时,此代码不起作用。
它给了我一个错误说明:
ProgrammingError: (psycopg2.ProgrammingError) 无法适配类型 'numpy.ndarray'
【问题讨论】:
-
您好,我遇到了同样的问题,在寻找解决方案时遇到了您的问题。因此,我认为解决它对未来的其他人来说是有价值的。您能否修复您提供的代码示例(
for f in data:之后的缩进错误)?另外,哪一行抛出错误?