pd.DataFrame 以 2 种不同的方式来自数组
pd.DataFrame from an array in 2 different ways
我开始学习机器学习,所以我尝试了 kaggle 的 MINST。我真的很好奇事情是如何运作的,因为我无法在网上找到答案,我认为在这里制作我的第一个 post 是个好主意。
我在 keras.This 上用 CNN 做了一个简单的模型将是 google colab 输出的预测。
Ynew =model.predict_classes(test_data)
Ynew.shape
(28000,)
Ynew
数组([2, 0, 9, ..., 3, 9, 2])
现在我尝试从中创建一个 DataFrame,但我真的不明白为什么我可以用一种方式而不是另一种方式。
这个很好用,我得到一个 table 28000x2:
labels = ["ImageId","Label"]
col= list(range(1,28001))
submission=pd.DataFrame({"ImageId":col,"Label":Ynew})
但是在这一行中,我把所有东西都挤在了 1 行中:
submission2=pd.DataFrame(data=[[col,Ynew]],columns=labels)
两种方法不应该一样吗?
希望 post 没有那么糟糕,谢谢!!
submission2=pd.DataFrame(data=Ynew, index=col, columns=labels)
Dataframe 可以从以下位置创建:
- 一维数组、列表、字典或系列的字典
- 二维numpy.ndarray
- 结构化或记录ndarray
- A系列
- 另一个DataFrame
参考:pandas-docs
在你的例子中,Ynew
是一维数组,loc
是一个列表。恕我直言,您只能从 Ynew
和 loc
的字典创建数据框,就像您在第一种方法中所做的那样。
对于第二种方法,你需要让Ynew
和loc
成为2D-ndarray。
d = np.vstack([loc,Ynew]).T # you will have (28000,2)
submission2=pd.DataFrame(data = d, columns=labels)
我开始学习机器学习,所以我尝试了 kaggle 的 MINST。我真的很好奇事情是如何运作的,因为我无法在网上找到答案,我认为在这里制作我的第一个 post 是个好主意。
我在 keras.This 上用 CNN 做了一个简单的模型将是 google colab 输出的预测。
Ynew =model.predict_classes(test_data)
Ynew.shape
(28000,)
Ynew
数组([2, 0, 9, ..., 3, 9, 2])
现在我尝试从中创建一个 DataFrame,但我真的不明白为什么我可以用一种方式而不是另一种方式。
这个很好用,我得到一个 table 28000x2:
labels = ["ImageId","Label"]
col= list(range(1,28001))
submission=pd.DataFrame({"ImageId":col,"Label":Ynew})
但是在这一行中,我把所有东西都挤在了 1 行中:
submission2=pd.DataFrame(data=[[col,Ynew]],columns=labels)
两种方法不应该一样吗? 希望 post 没有那么糟糕,谢谢!!
submission2=pd.DataFrame(data=Ynew, index=col, columns=labels)
Dataframe 可以从以下位置创建:
- 一维数组、列表、字典或系列的字典
- 二维numpy.ndarray
- 结构化或记录ndarray
- A系列
- 另一个DataFrame
参考:pandas-docs
在你的例子中,Ynew
是一维数组,loc
是一个列表。恕我直言,您只能从 Ynew
和 loc
的字典创建数据框,就像您在第一种方法中所做的那样。
对于第二种方法,你需要让Ynew
和loc
成为2D-ndarray。
d = np.vstack([loc,Ynew]).T # you will have (28000,2)
submission2=pd.DataFrame(data = d, columns=labels)