我有这种Pandas DataFrame,其中的单元格包含多个值:
chrom
我想将其转换为拥有这个新的DataFrame:
data = {
'group_id' : [1, 2],
'persons': [
['John', 'Anna'],
['Virginia', 'Bob']
],
'ages': [
['18', '20'],
['22', '45']
]
}
df1 = pd.DataFrame(data)
我有想法使用这样的# df1 content
group_id persons ages
1 [John, Anna] [18, 20]
2 [Virginia, Bob] [22, 45]
# result I want
group_id persons ages
1 John 18
1 Anna 20
2 Virginia 22
2 Bob 45
方法:
DataFrame.stack()
它在这个小例子上运作良好。但是我不知道在内存使用方面这是否是一种干净的方式,因为我创建了多个DataFrame和Series。我的原始DataFrame包含超过250 000行(150 Mo的数据),因此我认为它的性能很差。
您是否知道在没有中间人DataFrame的情况下执行此操作的简单方法?