【问题标题】:Can I create a dataframe from few 1d arrays as columns?我可以从几个一维数组作为列创建数据框吗?
【发布时间】:2020-06-02 16:38:34
【问题描述】:

是否可以从几个一维数组创建一个数据框并将它们作为列放置? 如果我从 1 个 1d 数组创建一个数据框,一切正常:

arr1 = np.array([11, 12, 13, 14, 15])
arr1_arr2_df = pd.DataFrame(data=arr1, index=None, columns=None) 
arr1_arr2_df
Out: 
    0
0  11
1  12
2  13
3  14
4  15

但是,如果将数据帧从 2 个数组中取出,则它们放置的是行:

arr1 = np.array([11, 12, 13, 14, 15])
arr2 = np.array([21, 22, 23, 24, 25])
arr1_arr2_df = pd.DataFrame(data=(arr1,arr2), index=None, columns=None)
arr1_arr2_df
Out: 
    0   1   2   3   4
0  11  12  13  14  15
1  21  22  23  24  25

我知道我可以通过转置来实现:

arr1_arr2_df = arr1_arr2_df.transpose()
arr1_arr2_df
Out: 
    0   1
0  11  21
1  12  22
2  13  23
3  14  24
4  15  25

但是有可能从一开始就得到它吗?

【问题讨论】:

  • zip 呢? arr1_arr2_df = pd.DataFrame(data=(zip(arr1,arr2)), index=None, columns=None)
  • 因为我们有心情:pd.DataFrame(dict(enumerate((arr1,arr2))))。但实际上,zip 简洁地完成了这项工作

标签: python-3.x pandas numpy dataframe


【解决方案1】:

您可以使用字典:

arr1_arr2_df = pd.DataFrame(data={0:arr1,1:arr2})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多