如何将(20,500000)的DataFrame转换为按模型顺序堆叠的单列DataFrame
问题
我有一个20行、500000列的DataFrame,每行对应一个包含500000个数值的唯一模型(共20个模型)。需要将其转换为仅含一列values的DataFrame,且行按模型顺序堆叠——前500000行对应第一个模型的所有数值,后续依次对应其他模型。尝试过pd.melt()但无法满足按模型顺序排列的需求。
解决方案
使用df.stack()可以实现需求,该方法会按原DataFrame的行顺序,依次将每一行的所有列值堆叠起来,完全匹配模型顺序的要求。
代码示例
import pandas as pd import numpy as np # 创建示例DataFrame(模拟20个模型,每个模型500000个数值) my_df = pd.DataFrame(np.random.randint(0,100,size=(20, 500000))) # 原尝试的pd.melt()不符合需求,已注释 # reshaped_my_df = pd.melt(my_df) # 执行堆叠操作并重置索引 df_stacked = my_df.stack().reset_index() # 进一步处理得到仅含'values'列的最终DataFrame df_final = df_stacked.drop(['level_0', 'level_1'], axis=1).rename(columns={0: 'values'})
内容的提问来源于stack exchange,提问作者jam_pyt
相关产品推荐
相关产品推荐

