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

如何在Pandas DataFrame中将指定列最后一个单词移至下一行

拆分DataFrame中Fruits列的多单词条目

原始数据

FruitsPriceYear
Apple Orange502015
Grape222018
Orange Mango252019
Apple Melon302015
Apple322020

期望结果

FruitsPriceYear
Apple Orange502015
Orange502015
Grape222018
Orange Mango252019
Mango252019
Apple Melon302015
Melon302015
Apple322020

实现代码

import pandas as pd

# 构建原始DataFrame
data = {
    'Fruits': ['Apple Orange', 'Grape', 'Orange Mango', 'Apple Melon', 'Apple'],
    'Price': [50, 22, 25, 30, 32],
    'Year': [2015, 2018, 2019, 2015, 2020]
}
df = pd.DataFrame(data)

# 定义每行的处理逻辑
def process_row(row):
    fruit_parts = row['Fruits'].split()
    if len(fruit_parts) > 1:
        # 保留原条目,新增仅含最后一个单词的条目
        return [row.to_dict(), {'Fruits': fruit_parts[-1], 'Price': row['Price'], 'Year': row['Year']}]
    else:
        # 单单词条目直接保留
        return [row.to_dict()]

# 展开所有条目生成新DataFrame
new_df = pd.DataFrame([item for sublist in df.apply(process_row, axis=1) for item in sublist])

# 打印结果
print(new_df)

代码说明

  1. 通过字典构建原始DataFrame;
  2. 定义process_row函数,对每行的Fruits列拆分:若包含多个单词,返回原行数据和仅含最后一个单词的新行数据;若只有一个单词,直接返回原行;
  3. 用列表推导式展开所有处理后的条目,生成最终的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:15:31