Python 如何从数据帧中包含数组的单元格中提取值?

Python 如何从数据帧中包含数组的单元格中提取值?,python,pandas,dataframe,Python,Pandas,Dataframe,以下是数据源的数据帧格式 cinema kiwi restaurant sushi 0 [2, 2, 2] [5, 5, 5] [2, 2, 2] [14, 14, 14] 1 [2, 2, 2] [2, 2, 2] [2, 2, 2] [2, 2, 2] 2 [1, 1, 1] [1, 1, 1] [10, 10, 10] [1, 1, 1] 我想通过只选择数组的第一个值来进行如下转换 cine

以下是数据源的数据帧格式

    cinema       kiwi    restaurant         sushi
0  [2, 2, 2]  [5, 5, 5]     [2, 2, 2]  [14, 14, 14]
1  [2, 2, 2]  [2, 2, 2]     [2, 2, 2]     [2, 2, 2]
2  [1, 1, 1]  [1, 1, 1]  [10, 10, 10]     [1, 1, 1]
我想通过只选择数组的第一个值来进行如下转换

    cinema       kiwi    restaurant         sushi
0  2             5       2                  14
1  2             2       2                  2
2  1             1       10                 1
有什么功能可以做到这一点吗? 我正在考虑使用“应用”方法,但我不确定它是否是最好/最直接的方法


提前感谢您的评论。

最直接的方法是使用
。applymap

In [3]: df
Out[3]:
      cinema       kiwi    restaurant         sushi
0  [2, 2, 2]  [5, 5, 5]     [2, 2, 2]  [14, 14, 14]
1  [2, 2, 2]  [2, 2, 2]     [2, 2, 2]     [2, 2, 2]
2  [1, 1, 1]  [1, 1, 1]  [10, 10, 10]     [1, 1, 1]

In [4]: df.applymap(lambda x: x[0])
Out[4]:
   cinema  kiwi  restaurant  sushi
0       2     5           2     14
1       2     2           2      2
2       1     1          10      1

最直接的方法是使用
。applymap

In [3]: df
Out[3]:
      cinema       kiwi    restaurant         sushi
0  [2, 2, 2]  [5, 5, 5]     [2, 2, 2]  [14, 14, 14]
1  [2, 2, 2]  [2, 2, 2]     [2, 2, 2]     [2, 2, 2]
2  [1, 1, 1]  [1, 1, 1]  [10, 10, 10]     [1, 1, 1]

In [4]: df.applymap(lambda x: x[0])
Out[4]:
   cinema  kiwi  restaurant  sushi
0       2     5           2     14
1       2     2           2      2
2       1     1          10      1

非常感谢你的可能的重复!我不得不稍微调整一下,因为我有NaN值。因此,我使用以下命令:>df.applymap(lambda x:x[0]如果不是np.all(pd.isnull(x))否则0)@fixme如果您也需要考虑NAN,您可以使用df.apply(lambda x:x.str[0],axis=0)代替。非常感谢!我不得不稍微调整一下,因为我有NaN值。因此,我使用以下命令:>df.applymap(lambda x:x[0]如果不是np.all(pd.isnull(x))否则0)@fixme如果您也需要考虑NAN,您可以使用df.apply(lambda x:x.str[0],axis=0)。