【发布时间】:2018-02-09 12:03:15
【问题描述】:
我有一个 DataFrame,每列包含一个列表,如下例所示,只有两列。
Gamma Beta
0 [1.4652917656926299, 0.9326935235505321, float] [91, 48.611034768515864, int]
1 [2.6008354611105995, 0.7608529935313189, float] [59, 42.38646954167245, int]
2 [2.6386970166722348, 0.9785848171888037, float] [89, 37.9011122659478, int]
3 [3.49336632573625, 1.0411524946972244, float] [115, 36.211134224288344, int]
4 [2.193991200007534, 0.7955134305428825, float] [128, 50.03563864975485, int]
5 [3.4574527664490997, 0.9399880977511021, float] [120, 41.841146628802875, int]
6 [3.1190582380554863, 1.0839109431114795, float] [148, 55.990072419824514, int]
7 [2.7757359940789916, 0.8889801332053203, float] [142, 51.08885697101243, int]
8 [3.23820908493237, 1.0587479742892683, float] [183, 43.831293356668425, int]
9 [2.2509032790941985, 0.8896196407231622, float] [66, 35.9377662201882, int]
我想为每一列提取每行列表的第一个位置,以获得如下所示的 DataFrame。
Gamma Beta
0 1.4652917656926299 91
1 2.6008354611105995 59
2 2.6386970166722348 89
...
到目前为止,我的解决方案类似于[row[1][0] for row in df_params.itertuples()],我可以对行的每个列索引进行迭代,然后组成我的新 DataFrame。
另一种方法是new_df = df_params['Gamma'].apply(lambda x: x[0]),然后遍历所有列。
我的问题是,有没有更简单的方法来执行这个操作?
【问题讨论】:
-
类似问题(另一种解决方法):stackoverflow.com/questions/26069235/…
标签: python python-3.x pandas