【问题标题】:Reshaping a dataframe to a new Dataframe将数据框重塑为新的数据框
【发布时间】:2021-09-24 06:36:55
【问题描述】:

您好,我想将数据框重新调整为正确的形状。 A, B, C, ... 可以是一个人的名字。

这是我的数据: https://www.udrop.com/5YbK/RelationMatrix.csv

【问题讨论】:

    标签: pandas dataframe reshape


    【解决方案1】:

    使用DataFrame.stack 并在map 中加入MultiIndex

    df1 = df.stack()
    df1.index = df1.index.map(lambda x: f'{x[0]}{x[1]}')
    df1 = df1.rename_axis('Link').reset_index(name='Value')
    

    为了获得更好的性能,可以使用:

    c = np.tile(df.columns, len(df))
    i = np.repeat(df.index, len(df.columns))
    v = np.ravel(df)
    
    df = pd.DataFrame({'Link':c, 'b': i, 'value': v})
    df['Link'] = df['Link'].str.cat(df.pop('b'))
    

    【讨论】:

    • 谢谢它运作良好。如果我们有一个大数据集怎么办。应该怎么做才能避免内核问题?
    • @Hadi - 答案已编辑。
    • 为了减少数据,我想删除AA数据和重复的数据。我该怎么办?我只想保留对角线以上的数据
    • @Hadi - 你能以文本格式添加输入输出数据和预期输出吗?
    • @Hadi - 我认为小数据样本 - 4 行 3 列文本格式的预期输出。 minimal, complete, and verifiable example
    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2013-01-27
    • 2015-10-07
    相关资源
    最近更新 更多