Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Arrays Python:在所有单元格中选择数组中的第一个元素_Arrays_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Arrays Python:在所有单元格中选择数组中的第一个元素

Arrays Python:在所有单元格中选择数组中的第一个元素,arrays,python-3.x,pandas,dataframe,Arrays,Python 3.x,Pandas,Dataframe,我试图做的是选择每个单元格的第一个元素,而不管列数或行数(它们可能会根据用户定义的条件而改变),并从数据中创建一个新的数据帧。我的实际数据结构与下面列出的类似 0 1 2 0 [1, 2] [2, 3] [3, 6] 1 [4, 2] [1, 4] [4, 6] 2 [1, 2] [2, 3] [3, 6] 3 [4, 2] [1, 4] [4, 6] 我希望新的数据帧看起来像: 0 1 2 0 1

我试图做的是选择每个单元格的第一个元素,而不管列数或行数(它们可能会根据用户定义的条件而改变),并从数据中创建一个新的数据帧。我的实际数据结构与下面列出的类似

       0       1       2
0   [1, 2]  [2, 3]  [3, 6]
1   [4, 2]  [1, 4]  [4, 6]
2   [1, 2]  [2, 3]  [3, 6]
3   [4, 2]  [1, 4]  [4, 6]
我希望新的数据帧看起来像:

    0   1   2
0   1   2   3
1   4   1   4
2   1   2   3
3   4   1   4
下面的代码生成了一个类似于我的数据集,并尝试在代码中执行我想执行的操作,但没有成功(d),并且成功地模仿了我在类似问题中看到的操作(c;但是,只有一列)。类似但不同问题的链接如下:


您可以使用
apply
和选择列表的第一个值使用:

另一个解决方案包括和:


我将使用
applymap
,它将相同的函数应用于数据帧中的每个单元格

df.applymap(lambda x: x[0])

   0  1  2
0  1  2  3
1  4  1  4
2  1  2  3
3  4  1  4

我非常喜欢
stack
+
unstack

然而,@jezrael已经记下了答案。。。所以+1来自我

也就是说,这里有一个更快的方法。通过切片一个numpy数组

pd.DataFrame(
    np.array(zz.values.tolist())[:, :, 0],
    zz.index, zz.columns
)

   0  1  2
0  1  2  3
1  4  1  4
2  1  2  3
3  4  1  4

定时


谢谢!!!我将尝试这两种方法,看看哪种方法运行得最快。感谢您提供的计时信息和新方法..+1
print (zz.stack().str[0].unstack())
   0  1  2
0  1  2  3
1  4  1  4
2  1  2  3
3  4  1  4
df.applymap(lambda x: x[0])

   0  1  2
0  1  2  3
1  4  1  4
2  1  2  3
3  4  1  4
pd.DataFrame(
    np.array(zz.values.tolist())[:, :, 0],
    zz.index, zz.columns
)

   0  1  2
0  1  2  3
1  4  1  4
2  1  2  3
3  4  1  4