如何正确透视Pandas DataFrame以获取目标格式结果?
Pandas DataFrame 转换问题
原始DataFrame
import pandas as pd df2 = pd.DataFrame({ 'nombreNumeroUnico': ['UP2_G1_B', 'UP2_G2_B'], 'pMax': [110.0, 110.0] }) # 输出: # nombreNumeroUnico pMax # 0 UP2_G1_B 110.0 # 1 UP2_G2_B 110.0
预期结果
希望转换为如下格式:
UP2_G1_B UP2_G2_B 0 110 110
已尝试方法
使用pivot函数未得到预期结果:
df2.pivot(index=None, columns="nombreNumeroUnico", values="pMax") # 输出: # nombreNumeroUnico UP2_G1_B UP2_G2_B # 0 110.0 NaN # 1 NaN 110.0
解决方法
可以通过以下两种方式实现目标格式:
方法一:设置索引后转置并重置索引
将nombreNumeroUnico设为索引,转置后重置索引即可得到单行结果,还可按需转换数据类型:
df_result = df2.set_index('nombreNumeroUnico').T.reset_index(drop=True) # 转换为整数类型(可选) df_result = df_result.astype(int)
方法二:直接构造字典生成新DataFrame
利用原数据的两列构造字典,再生成单行DataFrame:
df_result = pd.DataFrame([dict(zip(df2['nombreNumeroUnico'], df2['pMax']))]).astype(int)
说明
之前使用pivot得到的结果会保留原DataFrame的索引,每一行对应原数据的一条记录,因此出现NaN。而上述方法是将所有列整合到同一行,符合预期格式。
内容的提问来源于stack exchange,提问作者Cedric Zoppolo
相关产品推荐
相关产品推荐

