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]