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

如何在Pandas DataFrame中提取行内数据?含多值分隔场景

Pandas DataFrame行内容提取问题解答

嘿,我来帮你搞定这两个Pandas提取的问题,都是日常处理DataFrame时很常见的场景,直接上干货:

1. 如何从Pandas DataFrame的行中提取指定内容?

提取行内容的方式取决于你的具体需求,常见的几种场景如下:

  • 按列名提取指定列的所有行
    如果明确知道要提取的列名,直接用列索引就能拿到整列的内容,支持单个或多个列:

    import pandas as pd
    
    # 先搞个示例DataFrame
    df = pd.DataFrame({
        'name': ['Alice', 'Bob', 'Charlie'],
        'age': [25, 30, 35],
        'city': ['New York', 'London', 'Paris']
    })
    
    # 提取单个列的所有行
    name_list = df['name']
    print(name_list)
    
    # 提取多个列的所有行
    name_city_subset = df[['name', 'city']]
    print(name_city_subset)
    
  • 按位置提取指定行/行列组合
    如果不知道列名但知道位置,用iloc(基于整数位置的索引)就很方便,索引从0开始:

    # 提取第1行(索引为0)的所有内容
    first_row = df.iloc[0]
    print(first_row)
    
    # 提取第1到第2行(索引0、1)的name和age列(位置0、1)
    specific_subset = df.iloc[0:2, [0, 1]]
    print(specific_subset)
    
  • 基于条件提取符合要求的行
    要是需要筛选满足特定条件的行,直接把条件放进DataFrame的索引里就行:

    # 提取年龄大于28的所有行
    older_people = df[df['age'] > 28]
    print(older_people)
    

2. 从用|分隔的category列中提取"Plane Travel"

这种多值用分隔符拼接的场景,用Pandas的字符串处理方法就能轻松搞定,分两种情况给你方案:

情况1:"Plane Travel"位置固定(比如总是第一个)

如果它永远在分隔后的第一个位置,直接拆分后取第一个元素:

# 示例DataFrame
df = pd.DataFrame({
    'category': ['Plane Travel|Train Travel|Bus Travel',
                 'Plane Travel|Bus Travel',
                 'Plane Travel']
})

# 拆分列并提取第一个元素
df['plane_travel'] = df['category'].str.split('|').str[0]
print(df)

情况2:"Plane Travel"位置不固定

要是它在字符串里的位置不确定,用正则提取或者判断存在性更稳妥:

# 还是用刚才的示例DataFrame,调整几个位置
df = pd.DataFrame({
    'category': ['Train Travel|Plane Travel|Bus Travel',
                 'Bus Travel|Plane Travel',
                 'Plane Travel|Train Travel']
})

# 方法1:用正则精准提取匹配的内容
df['plane_travel'] = df['category'].str.extract(r'(Plane Travel)')

# 方法2:拆分后检查是否存在,存在就返回该值
df['plane_travel'] = df['category'].str.split('|').apply(lambda x: 'Plane Travel' if 'Plane Travel' in x else None)

print(df)

两种方法都能拿到你要的"Plane Travel",正则的方法更简洁,而lambda的方式可以灵活处理不存在的情况(返回None或者你指定的默认值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:24:28