这可能是一个非常简单的问题,即使过了一段时间我也无法解决自己想要的东西。
我有一个pandas Dataframe,我想从其中将几个cols从一行添加到一个新DataFrame中。在这种情况下,应添加更多值,然后将此DataFrame附加到另一个值。
以某种方式,我的“ df_row”总是显示为一列。然后将其附加到df_result时,它也只有一列而不是6列。 错误在哪里?
Thx
#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)
答案 0 :(得分:0)
问题似乎出在以下几行:
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"])