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

如何将转置后的Series追加/合并到DataFrame,使其仅含一行?

解决方法

要将转置后的Series合并到DataFrame中并最终得到仅含一行的结果,我们需要将Series转换为单行DataFrame,然后与原DataFrame按列合并(而非按行追加,因为按行追加会产生两行数据)。以下是具体步骤:

步骤1:准备示例数据

首先,我们先还原你提供的Series和DataFrame:

import pandas as pd

# 你的Series
s = pd.Series(
    data=[9, 'LULU', 'Lululemon Athletica Inc.', 'Consumer Goods', 'Textile - Apparel Clothing', 'Canada', '11.87B', 42.72, 85.96, '9.21%', 10704010],
    index=['No.', 'Ticker', 'Company', 'Sector', 'Industry', 'Country', 'Market Cap', 'P/E', 'Price', 'Change', 'Volume'],
    name=8
)

# 你的DataFrame
df = pd.DataFrame(
    data=[[1.05, 0.87, -5.0, '2018-04-06', 0.333014, False, 0.85]],
    columns=['Ask', 'Bid', 'Chg', 'Expiry', 'IV', 'IsNonstandard', 'Last'],
    index=[57]
)

步骤2:将Series转换为单行DataFrame

由于Series的索引是我们需要的列名,使用to_frame().T可以将其转换为单行DataFrame:

# 转换Series为单行DataFrame
s_single_row = s.to_frame().T

步骤3:合并两个DataFrame(按列)

为了确保索引对齐,我们先重置两个DataFrame的索引,然后按列合并:

# 重置索引以对齐
df_reset = df.reset_index(drop=True)
s_reset = s_single_row.reset_index(drop=True)

# 按列合并,得到单行结果
final_df = pd.concat([df_reset, s_reset], axis=1)

关于append的说明

如果你尝试直接使用append,会将Series作为新行追加到DataFrame中,导致结果有两行,这不符合你的需求。例如:

# 这会产生两行数据,不是你想要的
wrong_df = df.append(s, ignore_index=True)

而且append方法在pandas 2.0及以上版本已经被标记为废弃,官方推荐使用pd.concat替代。

最终结果

final_df将是一个仅含一行的DataFrame,包含原DataFrame的所有列和Series转换后的新列。

内容的提问来源于stack exchange,提问作者nicholas.reichel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:48:00