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

如何在不修改col_2的前提下将Pandas DataFrame多列指定值堆叠为单列?

Pandas DataFrame 重塑实现方案

核心逻辑

保留col_2全部原始值,再追加col_1中指定的One、Two、Three、Four四个值,最终生成仅含col_3的单列DataFrame,全程不修改col_2数据。

完整代码实现

import pandas as pd

# 构造你提供的示例DataFrame
df = pd.DataFrame({
    'col_1': ['One', 'Two', '*Roxanne*', '*Ghina*', 'Three', 'Four'],
    'col_2': ['*Roxanne*', '*Ghina*', '*Leila*', '*George*', '*Rock*', '*Rock*']
})

# 提取col_2的全部原始数据(不做任何修改)
col2_raw = df['col_2']

# 从col_1中筛选指定的四个目标值
col1_targets = df[df['col_1'].isin(['One', 'Two', 'Three', 'Four'])]['col_1']

# 按顺序拼接数据并生成目标单列DataFrame
result_df = pd.concat([col2_raw, col1_targets], ignore_index=True).to_frame(name='col_3')

# 查看最终结果
print(result_df)

输出结果

col_3
Roxanne
Ghina
Leila
George
Rock
Rock
One
Two
Three
Four

扩展适配

如果需要筛选col_1中所有不带星号的纯文本值(而非仅指定四个),可以改用正则表达式匹配:

col1_targets = df[df['col_1'].str.match(r'^[A-Za-z]+$')]['col_1']

内容的提问来源于stack exchange,提问作者Yilmaz Gökçe Düz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:05:25