Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python正在分解包含数组的多个变长数据帧列_Python_Pandas - Fatal编程技术网

python正在分解包含数组的多个变长数据帧列

python正在分解包含数组的多个变长数据帧列,python,pandas,Python,Pandas,我有一个数据帧,每列包含一个数组,我需要将它分解为每列多行。数组嵌套(两次)且长度可变(每个数组中包含6-12个数组) 我试着两者中的任何一个 分解每个嵌套数组或数组的顶层 爆炸一切,并有一个多索引 示例数据: 我尝试了这里的各种方法,因此使用内置的explode函数,无法生成任何符合我的示例df的内容: df = pd.DataFrame({"k_6_cluster":[[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9

我有一个数据帧,每列包含一个数组,我需要将它分解为每列多行。数组嵌套(两次)且长度可变(每个数组中包含6-12个数组) 我试着两者中的任何一个

  • 分解每个嵌套数组或数组的顶层
  • 爆炸一切,并有一个多索引
示例数据:

我尝试了这里的各种方法,因此使用内置的explode函数,无法生成任何符合我的示例df的内容:

df = pd.DataFrame({"k_6_cluster":[[[1,2,3],[4,5,6],[7,8,9]],[[1,2,3],[4,5,6],[7,8,9]]],"k_7_cluster":[[[10,20,30],[40,50,60],[70,80,90]],[[10,20,30],[40,50,60],[70,80,90]]]

print(df)


               k_6_cluster                        k_7_cluster
    0   [[1, 2, 3], [4, 5, 6], [7, 8, 9]]   [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
    1   [[1, 2, 3], [4, 5, 6], [7, 8, 9]]   [[10, 20, 30], [40, 50, 60], [70, 80, 90]]

以下代码行将分解每个嵌套数组的顶层

list_cols = df.columns
exploded = [df[col].explode() for col in list_cols]
out_df = pd.DataFrame(dict(zip(list_cols, exploded)))

print(out_df)

        k_6_cluster  k_7_cluster
    0   [1, 2, 3]   [10, 20, 30]
    0   [4, 5, 6]   [40, 50, 60]
    0   [7, 8, 9]   [70, 80, 90]
    1   [1, 2, 3]   [10, 20, 30]
    1   [4, 5, 6]   [40, 50, 60]
    1   [7, 8, 9]   [70, 80, 90]

请提供一些文本样本数据和预期的输出布局。您好,首先谢谢。但这似乎不起作用,error:ValueError:无法从重复轴重新编制索引。这可能是因为阵列的大小不同吗?您是否尝试过我的示例df?是的,这很有效。但所有数组的大小都相同。如果要将第四个列表添加到k_7_集群阵列中作为[100110120],那么它将失败。