在 Python Pandas 中将列转换为行

2024-04-10

我有以下 Python pandas 数据框:

     fruits | numFruits
---------------------
0  | apples |   10
1  | grapes |   20
2  |  figs  |   15

I want:

                 apples | grapes | figs
-----------------------------------------
Market 1 Order |    10  |   20   |  15

我看过pivot()、pivot_table()、Transpose 和unstack(),但它们似乎都没有给我这个。熊猫新手,所以感谢大家的帮助。


你需要set_index http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.set_index.html转置为T http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.T.html:

print (df.set_index('fruits').T)
fruits     apples  grapes  figs
numFruits      10      20    15

如果需要重命名列,则有点复杂:

print (df.rename(columns={'numFruits':'Market 1 Order'})
         .set_index('fruits')
         .rename_axis(None).T)
                apples  grapes  figs
Market 1 Order      10      20    15

另一个更快的解决方案是使用numpy.ndarray.reshape https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.reshape.html:

print (pd.DataFrame(df.numFruits.values.reshape(1,-1), 
                    index=['Market 1 Order'], 
                    columns=df.fruits.values))

                apples  grapes  figs
Market 1 Order      10      20    15

Timings:

#[30000 rows x 2 columns] 
df = pd.concat([df]*10000).reset_index(drop=True)    
print (df)


In [55]: %timeit (pd.DataFrame([df.numFruits.values], ['Market 1 Order'], df.fruits.values))
1 loop, best of 3: 2.4 s per loop

In [56]: %timeit (pd.DataFrame(df.numFruits.values.reshape(1,-1), index=['Market 1 Order'], columns=df.fruits.values))
The slowest run took 5.64 times longer than the fastest. This could mean that an intermediate result is being cached.
1000 loops, best of 3: 424 µs per loop

In [57]: %timeit (df.rename(columns={'numFruits':'Market 1 Order'}).set_index('fruits').rename_axis(None).T)
100 loops, best of 3: 1.94 ms per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python Pandas 中将列转换为行 的相关文章

随机推荐

  • 如何使用 ng-option 设置 select 元素的默认值

    我在这里看到了 Angular select 指令的文档 http docs angularjs org api ng directive select http docs angularjs org api ng directive se
  • 排除 Sonarqube 中的方法

    使用 sonarqube 进行分析时 有没有办法排除类中的特定方法 我找到的只是如何排除文件和模块 除非你想用以下方法包围这些方法标记评论并使用排除 https docs sonarqube org latest project admin
  • 如何修改此代码以使用函数而不是 lambda?

    我有一个有效的斐波那契函数 它从虚拟列表 1 1 1 1 1 1 返回斐波那契数列表 这是我的代码 list
  • 使用 C++11 复制构造 boost::shared_ptr 时出错

    昨天我安装了 clang 3 1 和 g 4 7 并尝试编译我正在处理的项目 我很惊讶地发现它没有使用这两个编译器进行编译 但最令我惊讶的是 问题出在boost shared ptr 显然 由于该类定义了移动构造函数 赋值运算符 因此复制构
  • 选择单个随机值组合的算法?

    说我有y不同的值 我想选择x他们是随机的 执行此操作的有效算法是什么 我可以打电话rand x次 但如果x y很大 注意组合这里需要 每个值应该有相同的被选择概率 但它们在结果中的顺序并不重要 当然 任何算法生成排列 questions t
  • Android Studio 2.0/2.1/3.0+ 不兼容 Bitbucket 插件 1.2.1

    我已将 Android Studio 版本更新到 2 0 并且在加载 Android Studio 时面临 bitbucket 插件 1 2 1 不兼容的问题 Android Studio 的事件日志显示 插件错误加载插件时发现问题 以下插
  • 如何使用 scalatra 通过 sbt-assemble 创建包含 webapp 资源的可执行单个 jar

    我正在通过 sbt 和 xsbt web plugin 使用 scalatra 框架制作 web 应用程序 我想将所有资源 模板 css js 打包到一个 jar 中 在带有 sbt assemble 插件的 sbt 中 assembly命
  • 查找返回有状态会话 bean 的新实例

    我在用Java EE 5 EJB 3 0 Jboss AS 4 3 2 我有最简单的Stateful bean Local public interface IStateBean Stateful public class StateBea
  • C# 枚举条目名称中可以有连字符吗

    有没有办法让枚举条目的名称中带有连字符 例如 enum myEnum ok not ok 我看过有关的问题具有友好名称的枚举 https stackoverflow com questions 1415140 c enums can my
  • FB.getLoginStatus 弹出窗口内的 FB.login 被阻止

    我正在尝试使用 Facebook Javascript SDK 将 Facebook 登录集成到我的网站中 根据Facebook开发者文档提供的分步说明here https developers facebook com docs java
  • 模板函数中的默认模板需要空尖括号 <>

    gcc 11 2 似乎不能 https godbolt org z eY7x3MojP编译这个 template
  • 如何检查 params[:some][:field] 是否为零?

    我尝试了代码 这让很多人受益匪浅 如何测试rails中是否存在参数 https stackoverflow com questions 5629402 how to test if parameters exist in rails 但它不
  • STL容器内存问题[重复]

    这个问题在这里已经有答案了 我正在 Linux Fedora 10 和 CentOS 5 中使用 gcc 4 3 2 并使用 STL 容器实现我自己的图形库 然后我发现了一些内存问题 当我构建图表时 我使用了大量内存来查看top或其他内存使
  • Ngxs - 调用 Angular 服务:好的做法吗?

    当我使用ngxs我的应用程序应该做什么 我的组件调用一个服务 并且该服务调度一个操作 结果作为有效负载 我的组件调度一个动作 我的 状态调用服务 我的观点是 Dispatched Action 本身应该是不可变的 并且不用于返回结果 相反
  • 如何从我的应用程序启动默认音乐播放器?

    我制作了一个应用程序ListView 当我点击ListView项目 一个 ogg声音文件应该开始播放 不在我的应用程序中 而是在用户的默认音乐播放器应用程序中 我怎样才能做到这一点 Try this Intent it new Intent
  • Java - 作为普通代码运行字符串[重复]

    这个问题在这里已经有答案了 有没有办法将字符串作为代码运行 我的意思是如果我运行的字符串有价值System out println Hello World 我可以像普通代码一样运行该字符串 然后输出将是 Hello World 吗 例如 S
  • 如何将单个图像转换为 MP4 视频?

    如何将单个图像转换为 mp4 视频 例如 我需要播放同一张图像20秒 持续时间将是动态的 我知道这是可能的ffmpeg 我在谷歌和SO中搜索 但不幸的是 我无法找到正确的教程 我只是想要一个正确的方向 欢迎任何意见或建议 基本语法是 ffm
  • 无法登录在 django 管理后端创建的超级用户

    我试图在 django 管理后端创建超级用户 但不知何故我无法让他们登录 这是我的用户类别 class User AbstractBaseUser PermissionsMixin email models EmailField uniqu
  • 如何在点击时将图像设置为背景图像?

    我有一个活动显示带有不同图像的网格视图 当单击其中一个图像时 我希望单击的图像成为另一个活动的背景图像 我怎样才能做到这一点 这是我的活动 显示网格视图 public class HelloGridViewActivity extends
  • 在 Python Pandas 中将列转换为行

    我有以下 Python pandas 数据框 fruits numFruits 0 apples 10 1 grapes 20 2 figs 15 I want apples grapes figs Market 1 Order 10 20