【问题标题】:how to transpose dataframe?如何转置数据帧?
【发布时间】:2015-08-17 13:27:31
【问题描述】:

我有一个数据框(来自 groupby par "nr" 的结果)

id  lap  nr  time
 1    1   2    10
 4    2   2   100

我需要将此数据框重新排列为以下格式

nr lap1 time1 lap2 time2
 2    1    10    2    100

任何想法我该怎么做?

【问题讨论】:

    标签: pandas dataframe transpose


    【解决方案1】:

    您可以将其视为pivot。如果您的 DataFrame 有一个名为 colnum 的额外列:

       lap  nr  time  colnum
    0    1   2    10       1
    1    2   2   100       2
    

    然后

    df.pivot(index='nr', columns='colnum')
    

    nr 列值移动到行索引中,将colnum 列值移动到列索引中:

           lap    time     
    colnum   1  2    1    2
    nr                     
    2        1  2   10  100
    

    这基本上是想要的结果。我们需要做的就是修复列标签:

    df.columns = ['{}{}'.format(col, num) for col,num in df.columns]
    

    因此, 将熊猫导入为 pd

    df = pd.DataFrame({'id': [1, 4], 'lap': [1, 2], 'nr': [2, 2], 'time': [10, 100]})
    df['colnum'] = df.groupby('nr').cumcount()+1
    df = df[['lap','nr','time','colnum']]
    df = df.pivot(index='nr', columns='colnum')
    df.columns = ['{}{}'.format(col, num) for col,num in df.columns]
    df = df.reset_index()
    

    产量

       nr  lap1  lap2  time1  time2
    0   2     1     2     10    100
    

    【讨论】:

    • 添加“colnum”的一些问题: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.Try using .loc[row_indexer,col_indexer] = value instead 查看文档中的注意事项:pandas.pydata.org/pandas-docs/stable/… df['colnum'] = df.groupby('nr').cumcount()+1
    • 在您的真实代码中,您使用的是双索引,例如df[...]['colnum'] = ... 还是完全是df['colnum'] = df.groupby('nr').cumcount()+1?如果您使用的是前者,那么是 double (aka "chained") indexing 导致了警告。如果您使用的是后者,那么......我很困惑。
    • 我的真实代码,我需要以某种方式将名称从源数据帧复制到结果(最后一行)pastebin.com/9JB9VgVN
    • 我的错误。 df = df[['lap','nr','time']] 后跟df['colnum'] = df.groupby('nr').cumcount()+1 相当于链式索引。解决方法是颠倒这两行的顺序。我已经编辑了上面的帖子以说明我的意思。
    • 我必须研究为什么我必须先添加 colnum 而不是 make groupby,但它确实有效。谢谢!
    猜你喜欢
    • 2017-03-11
    • 2021-05-21
    • 2021-03-14
    • 2014-09-03
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多