You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Pandas将DataFrame的两列数据重塑为单行?

没问题,我来帮你搞定这个Pandas数据重塑的需求!以下是几种实用的方法,你可以根据自己的原始数据结构来选择:

将Pandas DataFrame两列重塑为单行的具体方案

首先先模拟一个常见的原始DataFrame结构(如果和你的实际数据有出入,调整参数即可):

import pandas as pd

# 示例:两列多行的原始数据
df = pd.DataFrame({
    '特征列': ['身高', '体重', '年龄'],
    '数值列': [175, 65, 28]
})
print("原始DataFrame:")
print(df)

输出的原始数据长这样:

特征列  数值列
0  身高   175
1  体重    65
2  年龄    28

方法1:保留列名关联的结构化重塑

适合需要明确标注“原列名+行号”的场景,比如把身高体重这类特征和对应数值绑定成单行的新列:

# 给每行加一个行号标识,方便后续展开
df['行标记'] = df.index

# 转成宽表后再转成单行
result = df.set_index('行标记').unstack().to_frame().T

# 重命名列名,让可读性更强(可选步骤)
result.columns = [f"{原列名}_{行号}" for 原列名, 行号 in result.columns]

print("结构化重塑后的单行DataFrame:")
print(result)

输出结果:

特征列_0 数值列_0 特征列_1 数值列_1 特征列_2 数值列_2
0    身高    175    体重     65    年龄     28

方法2:快速展平成单行(不保留原列关联)

如果只是想把两列的所有数据单纯拼成一行,不需要复杂的列名关联,可以用这个简洁方法:

# 把所有值展平成一维数组,再转成单行DataFrame
result = pd.DataFrame([df.values.flatten()])

# 自定义新列名(可选)
result.columns = [f"数据项{i+1}" for i in range(len(result.columns))]

print("快速展平后的单行DataFrame:")
print(result)

输出结果:

数据项1 数据项2 数据项3 数据项4 数据项5 数据项6
0   身高   175   体重    65   年龄    28

方法3:针对两行两列的特殊场景

如果你的原始数据是两行两列的结构(比如只有两组数据),比如:

df = pd.DataFrame({
    '列1': ['张三', '李四'],
    '列2': ['男', '女']
}, index=[0,1])

想要合并成单行张三, 男, 李四, 女,可以用更直接的方式:

result = pd.DataFrame(df.T.unstack().values.reshape(1, -1))
print(result)

输出结果:

0   1    2   3
0  张三  男  李四  女

如果你的原始数据结构和上面的示例不同,可以补充具体的DataFrame结构,我再帮你调整方案哦!

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

火山引擎 最新活动