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

遍历DataFrame行提取对应列字符遇重复值问题求助

解决方法

直接遍历DataFrame的每一行,而非单独遍历X列元素,就能保证每行的X、Y值对应处理,避免因X重复导致的多行匹配问题:

方法1:使用iterrows()

import pandas as pd

# 构造目标DataFrame
df = pd.DataFrame({
    'X': ['ABCDEFGH', 'ABCDEFGH'],
    'Y': ['220105', '22H1 4']
})

for idx, row in df.iterrows():
    set1 = row['X']
    # Python是0索引,第6个字符对应索引5
    set2 = row['Y'][5]
    # 取前5个字符并移除空格
    set3 = row['Y'][0:5].replace(' ', '')
    print(f"set1={set1}")
    print(f"set2={set2}")
    print(f"set3={set3}")

运行结果完全符合预期:

set1=ABCDEFGH
set2=5
set3=22010
set1=ABCDEFGH
set2=4
set3=22H1

方法2:使用itertuples()(效率更高)

如果处理大数据量,推荐用itertuples(),它比iterrows()的运行效率更高:

for row in df.itertuples(index=False):
    set1 = row.X
    set2 = row.Y[5]
    set3 = row.Y[:5].replace(' ', '')
    print(f"set1={set1}")
    print(f"set2={set2}")
    print(f"set3={set3}")

原代码问题说明

你原代码中df.loc[df['X']==name, 'Y']会匹配所有X等于当前name的行,当X存在重复值时,就会返回多行结果,而非当前循环对应的单行数据。直接遍历每行则能精准处理每一组X、Y对应值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:45:34