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

标签 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 但没有成功。

最佳答案

使用

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

关于python - 选择列中每行的前 N ​​个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49530341/

相关文章:

python - 在python中使相对路径成为绝对路径

python - 评估 Pandas Dataframe 中相同列值的行/索引范围

python - 如何用 numpy 数组的列的平均值填充 nan 值?

python - 使用 dataframe.apply 在每列上调用唯一函数

python - 如何根据 python pandas 中的 1 个以上的独特类别过滤数据

python - Altair 图表上方的动态文本

python - 使用Python获取百度搜索结果url

python - 如何判断某些源代码中导入了哪些模块?

Python - Pandas 在自连接(合并)后删除行

python - Pandas/Python 中的数据操作