【问题标题】:Flattening an array in pandas在熊猫中展平数组
【发布时间】:2015-05-17 11:09:18
【问题描述】:

DataFrame 中的一列是一个数组。我该如何压平它?

column1 column2 column3
var1     var11   [1, 2, 3, 4]
var2     var22   [1, 2, 3, 4, -2, 12]
var3     var33   [1, 2, 3, 4, 33, 544]

展平后应该是:

column1 column2 column3
var1     var11   1
var1     var11   2
var1     var11   3
var1     var11   4
var2     var22   1
var2     var22   2
var2     var22   3
var2     var22   4
var2     var22   -2
......
var3     var33   544

我似乎 unstack 可以帮助我,但我不明白具体如何。

【问题讨论】:

标签: python pandas


【解决方案1】:

这是一种“单线”方法,其中df 是您的数据框:

import pandas as pd

df.join(df.column3.apply(pd.Series)).drop('column3', 1).set_index([u'column1', u'column2']).stack().reset_index().drop('level_2', 1).rename(columns={0:'column3'})

屈服:

   column1 column2  column3
0     var1   var11        1
1     var1   var11        2
2     var1   var11        3
3     var1   var11        4
4     var2   var22        1
5     var2   var22        2
6     var2   var22        3
7     var2   var22        4
8     var2   var22       -2
9     var2   var22       12
10    var3   var33        1
11    var3   var33        2
12    var3   var33        3
13    var3   var33        4
14    var3   var33       33
15    var3   var33      544

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 2018-12-01
    • 2017-06-09
    • 2020-04-30
    • 2021-06-13
    • 2015-12-28
    • 2019-03-18
    • 2020-12-28
    相关资源
    最近更新 更多