猿问

将pandas DataFrame列添加到行的最佳方法

我必须找到使用现有DataFrame创建新Dataframe的最佳方法。


查看此链接以获取完整代码:jdoodle.com/a/xKP


我有这种DataFrame:


df = pd.DataFrame({'length': [112, 214, 52,88], 'views': [10000, 50000, 25000,5000], 'click': [55, 64, 85,9]},

     index = ['id1', 'id2', 'id3','id4'])


     click  length  views

id1     55     112  10000

id2     64     214  50000

id3     85      52  25000

id4      9      88   5000

并且需要有这个结果:


    type_stat   stat

id1     click     55

id2     click     64

id3     click     85

id4     click      9

id1    length    112

id2    length    214

id3    length     52

id4    length     88

id1     views  10000

id2     views  50000

id3     views  25000

id4     views   5000

当前,我创建一个函数,该函数返回具有一个stat的DataFrame:


def df_by_stat(current_df,stat):

    current_df['type_stat'] = stat

    current_df['stat'] = current_df[stat].astype(int)


    return current_df[['type_stat','stat']]

在我.append使用这样的功能后:


def final():

    return df_by_stat(df,'click').append(

    df_by_stat(df,'length')).append(

    df_by_stat(df,'views'))


print(final())

这种方法是可行的,但其复杂性取决于行和列的基数,太昂贵了。这就是为什么我需要您的帮助才能找到最佳方法。


拉丁的传说
浏览 294回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答