2017-12-20 11 views
0

は、アレイpandas Dataframeで配列を含むセルから値を抽出するには?ここ

cinema  kiwi restaurant   sushi 
0 2    5  2     14 
1 2    2  2     2 
2 1    1  10     1 

の最初の値のみを選択することにより従うように私はそれを変換したいデータソース

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] 

のパンダのデータフレームフォーマットであることを行うにはどんな機能があります? "apply"メソッドを使用することを考えていましたが、それが最善の/最も直接的な方法かどうかはわかりません。

コメントありがとうございます。

+0

[パイソンパンダ:全ての細胞においてアレイ状に第1の要素を選択する]の可能な重複(https://stackoverflow.com/questions/41708059/ python-pandas-selection-first-element-in-all-cells) – 0p3n5ourcE

答えて

2

最も直接的な方法は.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 
+0

ありがとうございました! 私はNaN値を持っているので少し修正する必要がありました。 したがって、私は以下を使用しています: > df.applymap(lambda x:x [0]ならnp.all(pd.isnull(x))else 0) – fixeme

+0

@fixmeまた、NaNも考慮する必要がある場合は、代わりにdf.apply(lambda x:x.str [0]、axis = 0)を使用することがあります。 –

関連する問題