如何用Pandas将数据框行转为新空数据框列并添加class列
解决方案:创建指定列的空DataFrame
我明白你的需求啦——你想把原DataFrame里行索引(也就是A列的a、b、c)变成新DataFrame的列,还要额外加一个class列对吧?用pivot没得到预期结果很正常,咱们换个简单直接的思路来实现:
第一步:先确认原DataFrame的结构
先把你的原DataFrame用代码复现出来(方便后续操作):
import pandas as pd # 假设你的原DataFrame是这样的(A是行索引) df = pd.DataFrame( {'B': [2, 4, 4], 'C': [4, 6, 8]}, index=['a', 'b', 'c'] ) # 如果你的原DataFrame里A是单独一列的话,先转成索引: # df = pd.DataFrame({'A': ['a','b','c'], 'B': [2,4,4], 'C': [4,6,8]}).set_index('A')
第二步:创建目标空DataFrame
直接提取原DataFrame的行索引作为新列名,再加上class列,然后初始化空DataFrame就可以了:
# 生成目标列名列表:原索引 + ['class'] target_columns = df.index.tolist() + ['class'] # 创建空的DataFrame new_df = pd.DataFrame(columns=target_columns)
执行完之后,new_df的结构就是你想要的:
Empty DataFrame Columns: [a, b, c, class] Index: []
为什么pivot不符合预期?
df.pivot(columns='A')的作用是把A列的取值作为多级列的外层标签,同时会保留原数据的行结构,最终得到的是带多级列的DataFrame,和你需要的“空的、列直接是a/b/c/class”的结构完全不同,所以这个方法不适用哦。
内容的提问来源于stack exchange,提问作者ubuntu_noob
相关产品推荐
相关产品推荐

