选择列中每行的前N个元素

时间:2018-03-28 09:05:22

标签: python pandas

我希望在a列和b列中选择每行的前两个元素。

这是一个例子

df = pd.DataFrame({'a': ['A123', 'A567','A100'], 'b': ['A156', 'A266666','A35555']})

>>> df
      a        b
0  A123     A156
1  A567  A266666
2  A100   A35555

期望的输出

>>> df
      a      b
0     A1     A1
1     A5     A2
2     A1     A3

我一直在尝试使用df.loc但未成功。

2 个答案:

答案 0 :(得分:2)

使用

In [905]: df.apply(lambda x: x.str[:2])
Out[905]:
    a   b
0  A1  A1
1  A5  A2
2  A1  A3

或者,

In [908]: df.applymap(lambda x: x[:2])
Out[908]:
    a   b
0  A1  A1
1  A5  A2
2  A1  A3

答案 1 :(得分:1)

In [107]: df.apply(lambda c: c.str.slice(stop=2))
Out[107]:
    a   b
0  A1  A1
1  A5  A2
2  A1  A3