我想将嵌套列表扩展到多个行和列。同时,将结果映射回相应的列值。你知道吗
数据帧如下所示。你知道吗
df=pd.DataFrame({
'column_name':['income_level', 'geo_level'],
'results':[[[0, 12, 13], [0, 98, 43], [1, 29, 73], [2, 12, 34]], [[0, 78, 23], [1, 56, 67], [2, 67, 34]]]})
column_name | results
----------------------
income_level | [[0, 12, 13], [0, 98, 43], [1, 29, 73], [2, 12, 34]]
geo_level | [[0, 78, 23], [1, 56, 67], [2, 67, 34]]
我想要的最终结果是这样的。(将嵌套列表展开为行和列,并匹配相应的列值)
column_name | num |pct | index
income_level | 0 | 12 | 13
income_level | 0 | 98 | 43
income_level | 1 | 29 | 73
income_level | 2 | 12 | 34
geo_level | 0 | 78 | 23
geo_level | 1 | 56 | 67
geo_level | 2 | 67 | 34
我的当前代码:
pd.DataFrame(list(itertools.chain(*df['results'].values.tolist())), columns=['num', 'pct', 'index'])
我可以展开并创建标题,但无法匹配回相应的列值(即列名称)
尝试以下解决方案:
定义“重新格式化”函数:
然后应用它并连接结果:
Explode
列results
并赋值给df1
。从df1.results
和reset_index
的子列表创建新的数据帧在pandas<;0.25上,使用
sum
、np.repeat
和reset_index
实现相同的功能相关问题 更多 >
编程相关推荐