我有由多个列的命名单个数据帧,如“Load_Node_Values,Load_KV_Values,Load_Node_Values,Load_KV_Values,Load_P_ST_Values,Load_ST_Values,G_Node_Values,G_KV_Values,G_P_ST_Values,G_ST_Values,Line_Node_Values,Line_KV_Values,Line_P_ST_Values,Line_ST_Values,T_Node_Values,T_KV_Values,T_P_ST_Values,T_ST_Values, Load_P_ST_Values,Load_ST_Values,G_Node_Values
G_KV_Values,G_P_ST_Values,G_ST_Values,Line_Node_Values,Line_KV_Values,Line_P_ST_Values,Line_ST_Values,T_Node_Values,T_KV_Values”。所有这些列都具有数字和字符串值。我想合并以下所有值
将Load_Node_values,G_Node_values,Line_Node_values和T_Node_Values装入一个单独的列“新名称”,类似地,将另一列也装入另一个新的列名称。
我使用框架并将所有要合并的列放进去。在代码中,我显示了frame_node,frame_KV,frame_P,frame_ST,并将所有列名称放在代码中,如代码所示。
frame_KV=[df1['Load_KV_Values'],df2['G_KV_Values'],df3['Line_KV_Values'],df4['T_KV_Values']]
frame_P=[df1['Load_P_ST_Values'],df2['G_P_ST_Values'],df3['Line_P_ST_Values'],df4['T_P_ST_Values']]
frame_ST=[df1['Load_ST_Values'],df2['G_ST_Values'],df3['Line_ST_Values'],df4['T_ST_Values']]
frames=[frame_node,frame_KV,frame_P,frame_ST]
result_nodes=pd.concat(frames)
这是我从文字中得到的错误。
“ TypeError:无法连接类型为“”的对象;仅pd.Series,pd.DataFrame和pd.Panel(不建议使用)objs有效”
最佳答案
有Series
列表的列表,因此将其压平为Series
列表:
result_nodes=pd.concat([y for x in frames for y in x])
或者,可能需要先通过
axis=1
从eacj列表进行连接,然后默认使用axis=0
(应省略):result_nodes=pd.concat(pd.concat([x for x in frames], axis=1))
关于python - 将单个数据帧中的多个列合并到单个数据帧中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57520485/