在Python Pandas中将列转换为行 [英] Convert column to row in Python Pandas

查看:1556
本文介绍了在Python Pandas中将列转换为行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下Python pandas数据框:

I have the following Python pandas dataframe:

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

我想要:

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

我看了一下pivot(),pivot_table(),Transpose和unstack(),它们似乎都没有给我.熊猫新手,所以大家都感激不尽.

I have looked at pivot(), pivot_table(), Transpose and unstack() and none of them seem to give me this. Pandas newbie, so all help appreciated.

推荐答案

您需要 set_index ,由 T :

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

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

If need rename columns, it is a bit complicated:

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 :

Another faster solution is use numpy.ndarray.reshape:

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

时间:

#[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

这篇关于在Python Pandas中将列转换为行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆