如何让pandas选取单列或单行时返回DataFrame而非Series
强制pandas单列、单行选取返回DataFrame的方法
核心逻辑是只要给索引器传入列表类型的选择条件,pandas就会返回DataFrame而非Series,具体操作如下:
单列选取场景
原来返回Series的写法是df['col1'],调整为以下任意一种写法即可返回DataFrame:
- 传入包裹列名的列表:
df[['col1']],返回结果示例:
col1 0 0 1 1 2 2 3 3 4 4 5 5
- 用loc索引器时指定列列表:
df.loc[:, ['col1']]
单行选取场景
原来返回Series的写法是df.loc[0],调整为以下任意一种写法即可返回DataFrame:
- 用loc索引器时传入包裹行索引的列表:
df.loc[[0]],返回结果示例:
col1 col2 0 0 a
- 用iloc索引器时同理包裹行号:
df.iloc[[0]]
通用兜底方法
如果已经拿到了Series结果,也可以直接套pd.DataFrame()进行转换:
- 单列转换:
pd.DataFrame(df['col1']) - 单行转换:
pd.DataFrame(df.loc[0])
内容的提问来源于stack exchange,提问作者Scott Boston
相关产品推荐
相关产品推荐

