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

如何将元组列表转换为单列的Pandas DataFrame?

问题

我有一个元组列表:

tuple_lst = [('foo', 'bar'), ('bar', 'foo'), ('ping', 'pong'), ('pong', 'ping')]

希望创建一个仅含一列的DataFrame,该列包含每个元组对,格式如下:

|     one col       |
|     --------      |
|  ('foo', 'bar')   |
|  ('bar', 'foo')   |
|  ('ping', 'pong') |
|  ('pong', 'ping') |

我尝试执行:

df = pd.DataFrame(tuple_lst, columns='one col')

但出现错误,因为Pandas会将元组拆分为两列。我知道传入两个列名会生成双列DataFrame,但这不是我想要的。我不想先拆分再合并元组,希望有更简便的方法,且结果必须是DataFrame而非Series,以便后续添加其他列。


解决方案

方法1:包装为二维列表

把原元组列表的每个元素单独作为列表的一项,让Pandas识别为单列数据:

import pandas as pd

tuple_lst = [('foo', 'bar'), ('bar', 'foo'), ('ping', 'pong'), ('pong', 'ping')]
df = pd.DataFrame([item for item in tuple_lst], columns=['one col'])

执行后每个元组会完整保留在one col列中,不会被拆分。

方法2:通过Series转DataFrame

先创建Series,再用to_frame()方法转为DataFrame并指定列名:

s = pd.Series(tuple_lst, name='one col')
df = s.to_frame()

这种方式代码简洁,生成的DataFrame可直接用于后续添加新列。

方法3:强制指定数据类型

使用from_records方法时,通过dtype=object强制Pandas将元组视为单个对象,避免自动拆分:

df = pd.DataFrame.from_records(tuple_lst, columns=['one col'], dtype=object)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:22:08