【问题标题】:How to concat output to existing dataframe?如何将输出连接到现有数据框?
【发布时间】:2021-10-11 02:16:27
【问题描述】:

我有一个典型的数据框 df

我正在尝试将 sklearn 的输出添加到数据框:

代码:

rc_g_oo = RandomForestClassifier()
rc_g_oo.fit(X_oo, y_oo)
pred_oo_p = rc_g_oo.predict_proba(df_test)

print("Predicting probability of class")
pred_oo_p = rc_g_oo.predict_proba(df_test)

probability:  [[0.33 0.67]
 [0.59 0.41]
 [0.39 0.61]
 ...
 [0.69 0.31]
 [0.57 0.43]
 [0.55 0.45]]

最后我想把它放在一个数据框中:

result = pd.DataFrame({
    'predicted_1': pred_h,
    'predicted_1': pred_a,
    'predicted_probability': pred_oo_p,
})

但是我得到一个多维错误。一旦我可以重现它,我将编辑带有错误的问题。

【问题讨论】:

  • probability 是一个数组吗?您想再添加 2 列还是将它们添加到现有列中?你尝试了什么?
  • 您能发布您的预期输出吗?
  • @Joe 我尝试了这个concat = [df_historical, result] df_historical_archive = pd.concat(concat) 并且我得到了一个尺寸错误。行数与数据框'result'相同
  • 是的,Anurag,我会的
  • 还请发布您的 df 以及预期的输出...您只在您的问题中发布了概率数组

标签: python pandas dataframe concatenation


【解决方案1】:

您的概率不是逗号分隔的列表。看起来您是在有意输出每个值并在完整迭代后附加它而不附加。在将其添加到字典之前,您需要解决这个问题。

【讨论】:

  • 如何将列表转换为数据框?
  • import pandas as pd your_list = ['item0', 'item'1, 'item2',...] df =pd.DataFrame (your_list,columns=['Column_Name_of _your_choice'])
  • 一列名称是否足以满足 [[0.33 0.67] [0.59 0.41]] 的需求?我会尝试list = probability: [[0.33 0.67] [0.59 0.41] df = pd.DataFrame(probability, columns = ['new col1']) 这样的方式是否正确?
  • 概率列表中的那些值不是逗号分隔的,这否定了列表功能。也许我想看看生成它们的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-15
  • 2019-06-16
相关资源
最近更新 更多