如何在Pandas DataFrame中将两列上下拼接为单列?
解决方法
这里有几种简单有效的方式可以实现你想要的列合并效果:
方法一:使用 stack() 方法
import pandas as pd # 构造你的数据集 df = pd.DataFrame({ 'Col-1': ['Erin', 'Cathy', 'Ross'], 'Col-2': ['Tanya', 'Tom', 'Wes'] }) # 转换为单列 result = df.stack().reset_index(drop=True).to_frame('New_column') print(result)
步骤说明
df.stack():将多列数据按行优先顺序堆叠成 Series,顺序为第一列所有元素先出现,接着是第二列所有元素。reset_index(drop=True):移除堆叠后生成的冗余索引,只保留值序列。to_frame('New_column'):将 Series 转换为 DataFrame,并指定目标列名。
方法二:使用 ravel() 按列展平
result = pd.DataFrame(df.values.ravel('F'), columns=['New_column'])
df.values.ravel('F'):按列优先(Fortran 顺序)展平二维数组,直接得到你需要的元素顺序。- 再将展平后的数组转换为 DataFrame 并指定列名即可。
方法三:使用 melt() 方法
result = df.melt(value_vars=['Col-1', 'Col-2'], value_name='New_column').drop(columns='variable')
melt()将多列转换为键值对形式,value_vars指定要合并的列,value_name设置目标列名。- 最后删除自动生成的
variable列即可得到结果。
内容的提问来源于stack exchange,提问作者Mimikyu o_0
相关产品推荐
相关产品推荐

