Python 熊猫在一列中展平列表?

Python 熊猫在一列中展平列表?,python,pandas,Python,Pandas,我正在尝试展平一列列表: var var2 0 9122532.0 [[458182615.0], [79834910.0]] 1 79834910.0 [[458182615.0], [9122532.0]] 2 458182615.0 [[79834910.0], [9122532.0]] 我想: var var2 0 9122532.0 [458182615.0, 79834910.0] 1 79834910.

我正在尝试展平一列列表:

    var         var2
0   9122532.0   [[458182615.0], [79834910.0]]
1   79834910.0  [[458182615.0], [9122532.0]]
2   458182615.0 [[79834910.0], [9122532.0]]
我想:

    var         var2
0   9122532.0   [458182615.0, 79834910.0]
1   79834910.0  [458182615.0, 9122532.0]
2   458182615.0 [79834910.0, 9122532.0]
应用

sample8['var2'] = sample8['var2'].apply(chain.from_iterable).apply(list)
给我:

    var1        var2
0   9122532.0   [[, 4, 5, 8, 1, 8, 2, 6, 1, 5, ., 0, ], [, 7, ...
1   79834910.0  [[, 4, 5, 8, 1, 8, 2, 6, 1, 5, ., 0, ], [, 9, ...
2   458182615.0 [[, 7, 9, 8, 3, 4, 9, 1, 0, ., 0, ], [, 9, 1, ...
数据:

In [162]: df
Out[162]:
           var                           var2
0    9122532.0  [[458182615.0], [79834910.0]]
1   79834910.0   [[458182615.0], [9122532.0]]
2  458182615.0    [[79834910.0], [9122532.0]]
解决方案:使用:


考虑数据帧
df

df = pd.DataFrame(dict(
        var=[9122532.0, 79834910.0, 458182615.0],
        var2=[[[458182615.0], [79834910.0]],
              [[458182615.0], [9122532.0]],
              [[79834910.0], [9122532.0]]]
    ))

print(df)

           var                           var2
0    9122532.0  [[458182615.0], [79834910.0]]
1   79834910.0   [[458182615.0], [9122532.0]]
2  458182615.0    [[79834910.0], [9122532.0]]
np.连接

您可以
应用
np.连接

df.assign(var2=df.var2.apply(np.concatenate))

           var                       var2
0    9122532.0  [458182615.0, 79834910.0]
1   79834910.0   [458182615.0, 9122532.0]
2  458182615.0    [79834910.0, 9122532.0]
不适用
应用

这要求所有组件都具有相同的
2x1
形状。它始终可以适应其他形状。但是,此方法仍然要求所有形状都是一致的

df.assign(var2=np.array(df.var2.tolist()).reshape(-1, 2).tolist())

           var                       var2
0    9122532.0  [458182615.0, 79834910.0]
1   79834910.0   [458182615.0, 9122532.0]
2  458182615.0    [79834910.0, 9122532.0]

定时
小数据

大数据


标准警告:在序列和数据帧中存储非标量元素没有得到很好的支持,可能会导致模糊和难以理解的错误。
df.assign(var2=np.array(df.var2.tolist()).reshape(-1, 2).tolist())

           var                       var2
0    9122532.0  [458182615.0, 79834910.0]
1   79834910.0   [458182615.0, 9122532.0]
2  458182615.0    [79834910.0, 9122532.0]