【问题标题】:Creating more simple lines from multiple columns从多列创建更简单的行
【发布时间】:2020-11-11 01:48:55
【问题描述】:

我有一个如下所示的数据框:

Movie        Action    Adventure    Duration Director   More info...
SpongeBob       0          1           123      Karl
The Avengers    1          1           134      Annie

但我想将其拆分为仅包含电影的行、一次一种类型以及更多列,例如“导演”和“时长”。转换后的 DataFrame 应该是这样的:

Movie            Genre       Duration Director  (No more extra info)
SpongeBob      Adventure        123      Karl
The Avengers   Adventure        134      Annie
The Avengers   Action           134      Annie

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

这是一种方法:

df.melt(['Movie', 'Duration', 'Director', 'More info'], var_name='Genre')\
  .query('value == 1')\
  .drop('value', axis=1)

输出:

          Movie  Duration Director More info      Genre
1  The Avengers       134    Annie         B     Action
2     SpongeBob       123     Karl         A  Adventure
3  The Avengers       134    Annie         B  Adventure

使用 melt 重塑数据框,然后过滤值等于 1 的行,然后删除值列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 2016-03-27
    • 2013-04-21
    • 1970-01-01
    • 2017-08-31
    • 2021-11-20
    • 2019-04-06
    • 1970-01-01
    相关资源
    最近更新 更多