如何在Pandas中重塑数据框?

我在一个数据集上尝试一些机器学习。我对Python中的pandas/numpy还比较陌生,所以我无法找到解决方案。我使用pandas的read_csv函数得到一个数据框。数据框如下所示

ID   ATTR  QUANTITY17   203      1417   201      817   111      1159  80       5178  82       16

我希望将这个数据框重塑/扁平化为如下形式:

    ID  | attr1 | attr2 | attr3 | totalQuantity..................goes on===========================================================    17  |  203  |  201  |  111  |   23 (即ID等于17的总和)    159 |  80   |   0   |   0   |   5    178 |  82   |   0   |   0   |   16    ....

非常感谢提供一段代码。提前感谢


回答:

首先通过cumcount创建用于透视的att列。然后对df1使用pivot,对df2使用groupbysum。最后通过mergedf1df2合并,并使用fillna填充为0

print df     ID  ATTR  QUANTITY0    17   203        141    17   201         82    17   111         13    17   203        144    17   201         85    17   111         16    17   203        147    17   201         88    17   111         19    17   203        1410   17   201         811   17   111         112  159    80         513  178    82        16#添加att列用于计数组项目df['att'] = df.groupby('ID')['ID'].cumcount() + 1#使用att列透视dfdf1 = df.pivot(index='ID', columns='att', values='ATTR').reset_index()#在列名中添加'attr'字符串df1.columns =  [df1.columns[0]] + ['attr' + str(col) for col in df1.columns[1:]] df2 = df.groupby('ID')['QUANTITY'].sum().reset_index()#与总和合并print pd.merge(df1, df2 , on=['ID']).fillna(0)
    ID  attr1  attr2  attr3  attr4  attr5  attr6  attr7  attr8  attr9  attr10  \0   17    203    201    111    203    201    111    203    201    111     203   1  159     80      0      0      0      0      0      0      0      0       0   2  178     82      0      0      0      0      0      0      0      0       0      attr11  attr12  QUANTITY  0     201     111        92  1       0       0         5  2       0       0        16  

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注