首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >采取多个栏,并将它们与熊猫的索引相同。

采取多个栏,并将它们与熊猫的索引相同。
EN

Stack Overflow用户
提问于 2018-04-19 14:21:51
回答 4查看 116关注 0票数 2

我有一堆丑陋的客户数据,我正试图使之正常化。基本上是这样的:

代码语言:javascript
复制
Customer   Order1   Order2   Order3 ... OrderN

  John      This     That     The   ...  Other
 Shelly    Thing1   Thing2   Thing3 ... ThingN
   .         .        .        .          .
   .         .        .        .          .

所以我想把它改成:

代码语言:javascript
复制
Customer   Order

 John      This
 John      That
 John      The
 Shelly    Thing1
 Shelly    Thing2

诸若此类。

不过,我不知道该怎么做。

任何帮助都会很好!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-19 14:34:38

准确地说是一个stack和两个reset_index调用。

代码语言:javascript
复制
df
  Customer  Order1  Order2  Order3  OrderN
0     John    This    That     The   Other
1   Shelly  Thing1  Thing2  Thing3  ThingN

代码语言:javascript
复制
(df.set_index('Customer')
   .stack()
   .reset_index(level=1, drop=True)
   .reset_index(name='Order')
)

  Customer   Order
0     John    This
1     John    That
2     John     The
3     John   Other
4   Shelly  Thing1
5   Shelly  Thing2
6   Shelly  Thing3
7   Shelly  ThingN
票数 3
EN

Stack Overflow用户

发布于 2018-04-19 14:28:02

pd.melt是你要找的那个:

代码语言:javascript
复制
# Assuming all the other columns are orders except for the Customer column
value_list = [col for col in df.columns if col != 'Customer']

pd.melt(df, id_vars=['Customer'], value_vars=value_list,
        value_name='Order').drop('variable', axis=1)

  Customer   Order
0    John    this
1  Shelly  thing1
2    John    that
3  Shelly  thing2
4    John    that
5  Shelly  thing2
票数 2
EN

Stack Overflow用户

发布于 2018-04-19 14:32:52

我认为使用stack稍微好一点

代码语言:javascript
复制
df.set_index('Customer').stack().reset_index(level=0)
Out[1219]: 
       Customer       0
Order1     John    This
Order2     John    That
Order3     John     The
OrderN     John   Other
Order1   Shelly  Thing1
Order2   Shelly  Thing2
Order3   Shelly  Thing3
OrderN   Shelly  ThingN
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49923480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档