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

Pandas取单行后自动转置 如何回置结构并正确保存为CSV文件

问题根源

你在使用df.loc[行索引, :]筛选单行数据时,Pandas默认会将结果降维为Series对象,而非保持二维DataFrame结构。对Series执行transpose()操作不会改变其输出形态,因此你会得到竖排的展示效果,导出csv也不符合预期。

解决方案

有两种常用的修正方式:

  • 方式1:筛选时直接保留DataFrame结构
    给行索引参数包裹一层列表,告诉Pandas你需要返回二维结构,不需要降维。将你的df2定义代码修改为:
    df2 = df1.loc[[df1.loc[:,"col2"].idxmax()],:]
    
    此时df2本身就是你需要的单行DataFrame,不需要再执行transpose操作,直接输出、保存即可。
  • 方式2:对已有Series转换为单行DataFrame
    如果你已经拿到了Series格式的df2,可通过to_frame()先转为列向DataFrame,再转置得到正确结构:
    df3 = df2.to_frame().T
    
修正后完整代码
import pandas as pd
d1 = {
    'col1': [1, 2], 
    'col2': [4, 7], 
    'col3': [8, 5], 
}
df1 = pd.DataFrame(data=d1)
# 方式1 筛选时直接保留DataFrame结构
df3 = df1.loc[[df1.loc[:,"col2"].idxmax()],:]
print("df3:")
print(df3)
df3.to_csv("df3.csv")

运行上述代码后,df3的打印结果与你期望的结构一致,导出的csv格式也符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:36:00