Python中如何将DataFrame行转为列并提取最后一列末值
实现方法
你可以直接通过pandas自带的堆叠方法或numpy数组变换实现需求,以下是可直接运行的实现代码:
import pandas as pd import numpy as np # 构造原始DataFrame df = pd.DataFrame({'flag_1':[1,2,3,1,2,500],'dd':[1,1,1,7,7,8],'x':[1,1,1,7,7,8]}) # 按列优先顺序展平所有值,匹配示例输出前12位的顺序 flatten_data = df.stack().to_numpy() # 提取最后一列的最后一个值,追加到展平结果末尾,完全匹配你给出的示例输出 last_col_last_val = df.iloc[-1, -1] final_data = np.append(flatten_data, last_col_last_val) # 转为单行DataFrame,若需要把值直接作为列名可放开下方注释 df_out = pd.DataFrame([final_data]) # df_out.columns = final_data print(df_out)
逻辑说明
df.stack()会按列优先的顺序把所有值堆叠为一维序列,顺序和你给出的输出前12位完全一致:先输出flag_1列所有行的值,再输出dd列所有行的值,最后输出x列所有行的值df.iloc[-1, -1]直接定位到最后一行最后一列的位置,提取你需要的最后一列最后一个值- 最终将拼接好的一维数组传入pd.DataFrame,即可得到单行的输出结果
内容的提问来源于stack exchange,提问作者waqar ali
相关产品推荐
相关产品推荐

