在Python Pandas中将列转换为行

在Python Pandas中将列转换为行,第1张

在Python Pandas中将列转换为行

您需要

set_index
通过转置
T

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

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

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

另一个更快的解决方案是使用

numpy.ndarray.reshape

print (pd.Dataframe(df.numFruits.values.reshape(1,-1),          index=['Market 1 Order'],          columns=df.fruits.values))     apples  grapes  figsMarket 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 loopIn [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 loopIn [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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5652832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存