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)。