首页 > 解决方案 > Pandas DataFrame 有多行而不是多列

问题描述

这可能是一个非常简单的问题,即使在很长一段时间后我也无法管理我想要的东西。

我有一个熊猫数据框,我想将一行中的几列添加到一个新的数据框中。在此应添加更多值,然后将此 DataFrame 附加到另一个值。

不知何故,我的“df_row”总是显示为一列。然后,当我将此附加到我的 df_result 时,它也只有一列而不是 6。错误在哪里?

谢谢

#Create empty df
df_result = pandas.DataFrame(columns= ["filename, class, x, y, lbl, pred, c_pred"])

# Make new df from an existing one (not shown)
# This deliveres a frame with 6 Rows instead of 6 columns
idx = 1 #Normally used in a loop
df_row = pandas.DataFrame([df.iloc[idx:idx+1, 0:1].values, df.iloc[idx:idx+1, 1:2].values, df.iloc[idx:idx+1, 2:3].values, df.iloc[idx:idx+1, 3:4].values, label, pred.item(), correct_prediction], columns= ["filename, class, x, y, lbl, pred, c_pred"])

# Has also only one column
df_result = df_result.append(df_row)

标签: pythonpandas

解决方案


问题似乎出在以下几行:

   df_result = pandas.DataFrame(columns= ["filename, class, x, y, lbl, pred, c_pred"])
   df_row = pandas.DataFrame([df.iloc[idx:idx+1, 0:1].values, df.iloc[idx:idx+1, 1:2].values, df.iloc[idx:idx+1, 2:3].values, df.iloc[idx:idx+1, 3:4].values, label, pred.item(), correct_prediction], columns= ["filename, class, x, y, lbl, pred, c_pred"])

您将所有列名作为一个字符串提供,该字符串仅构成一列。尝试这个

  df_result = pandas.DataFrame(columns= ["filename", "class", "x", "y", "lbl", "pred", "c_pred"])
  df_row = pandas.DataFrame([df.iloc[idx:idx+1, 0:1].values, df.iloc[idx:idx+1, 1:2].values, df.iloc[idx:idx+1, 2:3].values, df.iloc[idx:idx+1, 3:4].values, label, pred.item(), correct_prediction], columns= ["filename", "class", "x", "y", "lbl", "pred", "c_pred"])

推荐阅读