栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Python Pandas中将列转换为行

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/650687.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号