python - 如何将具有 numpy 数组值的 Pandas 系列转换为数据框

标签 python pandas numpy

  1. 我有一个 pandas 系列,其值是 numpy 数组。为简单起见,假设
    series = pd.Series([np.array([1,2,3,4]), np.array([5,6,7,8]), np.array([9,10,11,12])], index=['file1', 'file2', 'file3'])
file1       [1, 2, 3, 4]
file2       [5, 6, 7, 8]
file3    [9, 10, 11, 12]

如何将其扩展为 df_concatenated 形式的数据框:

       0   1   2   3
file1  1   2   3   4
file2  5   6   7   8
file3  9  10  11  12
  1. 同一问题的更广泛版本。实际上,series 是从以下形式的不同数据帧中获得的:

数据框:

              0   1
file  slide        
file1 1       1   2
      2       3   4
file2 1       5   6
      2       7   8
file3 1       9  10
      2      11  12

通过对"file"索引进行分组并连接列。

   def concat_sublevel(data):
        return np.concatenate(data.values)

   series = data.groupby(level=[0]).apply(concat_sublevel)

可能有人看到了从数据帧 datadf_concatenated 的更好方法。

警告。 slide 子索引对于不同的 file 值可以有不同数量的值。在这种情况下,我需要重复其中一行以在所有结果行中获得相同的尺寸

最佳答案

您可以尝试使用记录中的 pandas Dataframe

pd.DataFrame.from_records(series.values,index=series.index)

输出:

    0   1   2   3
file1   1   2   3   4
file2   5   6   7   8
file3   9   10  11  12

关于python - 如何将具有 numpy 数组值的 Pandas 系列转换为数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53337762/

相关文章:

python - ufunc bitwise_xor 的类型错误

python - 寻找 PHP 的 str_split() 替代品

python - 使用filter()过滤Python输出 'None'

python - 如何随机删除 Pandas 数据框中的行,直到列中的值数量相等?

python - 求解具有四个变量的线性方程

python - 在 python 中执行反转置的最佳方法是什么?

python - 通过 Python 安装 Linux 软件包?

Eclipse PyDev 的 Python 反编译器?

python - 如何按其他值类型的组计算平均值?

python - 从 0 开始创建新的 pandas 列