我正在尝试合并(合并)从csv文件中选择的数据帧。我以前已经手动实现了此目的,但想使用(tkinter)文件对话框,以便用户可以选择一个或多个文件在数据框中使用。我所拥有的是:
while True:
root = Tk()
root.withdraw()
filename = filedialog.askopenfilename(title='Open data file', filetypes=(("Comma separated values", "*.csv"),))
if filename =="":
break
filenames.append(filename)
def read_Yokogawa(filename):
frame = pd.read_csv(filename, header = 46, skiprows = [47, 48], low_memory = False, parse_dates = True, infer_datetime_format = True, na_values = ['+OVER', '-OVER'])
print(frame)
return frame
dfs=[] #Set an empty array of dataframes
for filename in filenames:
dfs.append([read_Yokogawa(filename)]) #Append each dataframe to the array
df = pd.concat(dfs)
我收到错误:TypeError:无法连接类型为”的对象;只有Series和DataFrame objs有效
所有文件具有相同的列,因为它们是由同一软件生成的。我也尝试过pd.concat([dfs])
,但收到相同的错误。
答案 0 :(得分:1)
@Quang和@Renaud都提出了同样的建议,事实证明这是对这个问题的很好回答。
dfs=[]
for filename in filenames:
dfs.append(read_Yokogawa(filename))
df = pd.concat(dfs)