You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取Pandas DataFrame中a、b列每行前两个元素?使用df.loc未成功

解决Pandas提取字符串列前两个元素的问题

嘿,我来帮你搞定这个需求!其实不用纠结df.loc方法,Pandas针对字符串类型的列有专门的便捷操作,几步就能得到你想要的结果。

方法一:针对单列逐个处理

直接对需要处理的列使用str[:2],这个方法会提取每个字符串元素的前两个字符:

import pandas as pd

# 初始化你的DataFrame
df = pd.DataFrame({'a': ['A123', 'A567','A100'], 'b': ['A156', 'A266666','A35555']})

# 提取a列和b列的前两个元素
df['a'] = df['a'].str[:2]
df['b'] = df['b'].str[:2]

print(df)

运行后输出就是你期望的结果:

a   b
0  A1  A1
1  A5  A2
2  A1  A3

方法二:批量处理所有列(适合多列同操作)

如果你的DataFrame里需要处理的列不止这两列,或者想更简洁,可以用applymap对所有元素应用提取逻辑:

df = df.applymap(lambda x: x[:2])

这个方法会遍历DataFrame的每个单元格,把每个字符串的前两个字符保留下来,效果和上面的方法完全一致。

为什么df.loc没成功?

df.loc主要是用来按标签或条件筛选行/列,或者修改特定位置的值,它本身不直接处理字符串内容。要操作字符串元素,还是得用Pandas的str字符串方法或者applymap这类元素级的操作哦~

内容的提问来源于stack exchange,提问作者SBad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:25:49