我试图创建以下数据框
new_df = pd.DataFrame(data = percentage_default, columns =
df['purpose'].unique())
我使用的变量如下
percentage_default = [0.15238817285822592,
0.11568938193343899,
0.16602316602316602,
0.17011128775834658,
0.2778675282714055,
0.11212814645308924,
0.20116618075801748]
df['purpose'].unique = array(['debt_consolidation', 'credit_card', 'all_other',
'home_improvement', 'small_business', 'major_purchase',
'educational'], dtype=object)
当我尝试创建此数据框时,出现以下错误:
Shape of passed values is (1, 7), indices imply (7, 7)
对我来说,似乎价值观和内容的形状是一样的。有人可以解释一下我在这里失踪了吗?
谢谢!
答案 0 :(得分:1)
尝试以下一种方式重写数据:
percentage_default = {
'debt_consolidation': 0.15238817285822592,
'credit_card': 0.11568938193343899,
...
}
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html
答案 1 :(得分:1)
您正在从列表中创建数据框。调用pd.DataFrame(your_list)
,其中your_list是一个简单的同源列表,将为该列表中的每个元素创建一行。您的意见:
percentage_default = [0.15238817285822592,
0.11568938193343899,
0.16602316602316602,
0.17011128775834658,
0.2778675282714055,
0.11212814645308924,
0.20116618075801748]
pandas会创建一个这样的数据框:
Column
0.15238817285822592
0.11568938193343899
0.16602316602316602
0.17011128775834658
0.2778675282714055
0.11212814645308924
0.20116618075801748
因此,您的数据框只有一列。你试图传递多个列名,这会让熊猫感到困惑。
如果要从包含多列的列表创建数据框,则需要在原始列表中嵌套更多列表或元组。每个嵌套元组/列表将成为数据框中的一行,嵌套元组/列表中的每个元素将成为新列。见:
percentage_default = [(0.15238817285822592,
0.11568938193343899,
0.16602316602316602,
0.17011128775834658,
0.2778675282714055,
0.11212814645308924,
0.20116618075801748)] # nested tuple
我们在此列表中有一个嵌套元组,因此我们的数据帧将有1行,其中n列,其中n是嵌套元组中元素的数量(7)。然后我们可以传递您的7个列名称:
percentage_default = [(0.15238817285822592,
0.11568938193343899,
0.16602316602316602,
0.17011128775834658,
0.2778675282714055,
0.11212814645308924,
0.20116618075801748)]
col_names = ['debt_consolidation', 'credit_card', 'all_other',
'home_improvement', 'small_business', 'major_purchase',
'educational']
new_df = pd.DataFrame(percentage_default, columns = col_names)
print(new_df)
debt_consolidation credit_card all_other home_improvement \
0 0.152388 0.115689 0.166023 0.170111
small_business major_purchase educational
0 0.277868 0.112128 0.201166