python - 在 Python Pandas 数据框中拆分列

标签 python pandas dataframe

如何通过列中的变量名称拆分 pandas DataFrame 中的列? 我在下面有一个 DataFrame:

    ID  FEATURE PARAM   VALUE
0   A101    U1  ITEM1   10
1   A101    U1  ITEM2   11
2   A101    U2  ITEM1   12
3   A101    U2  ITEM2   13
4   A102    U1  ITEM1   14
5   A102    U1  ITEM2   15
6   A102    U2  ITEM1   16
7   A102    U2  ITEM2   17

我想按如下方式拆分它。

    ID  FEATURE ITEM1   ITEM2
0   A101    U1  10  11
1   A101    U2  12  13
2   A102    U1  14  15
3   A102    U2  16  17

我尝试使用其中一种响应,效果很好,但效果不佳。

Select_Data.groupby('PARAM')['VALUE'].apply(list).apply(pd.Series).T

PARAM   ITEM1   ITEM2
0   10  11
1   12  13
2   14  15
3   16  17

但是我丢失了 ID 和 FEATURE 列,我想将它们保留在表中。我将不胜感激任何建议。

最佳答案

您还可以将 pivot_table 与索引 ID,FEATURE 一起使用,然后重置索引,即

ndf =  pd.pivot_table(df,columns='PARAM', values='VALUE',index=['ID','FEATURE']).reset_index()

如果你想聚合重复值,那么你可以使用平均值

ndf =  pd.pivot_table(df,columns='PARAM', values='VALUE',index=['ID','FEATURE'],aggfunc='mean').reset_index()

输出:

PARAM    ID FEATURE  ITEM1  ITEM2
0      A101      U1     10     11
1      A101      U2     12     13
2      A102      U1     14     15
3      A102      U2     16     17
In [528]:

关于python - 在 Python Pandas 数据框中拆分列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45529667/

相关文章:

Python Anaconda 没有模块名称_imagingtk

python - 为什么我必须从 BytesIO 转换字节,然后再转换回 BytesIO,以便可以将其读取为 PDF 文件响应?

python - 我们何时以及为何使用 tf.reduce_mean?

python - Pandas:带条件减法的累积和

python - 如何扩大数据框 - Pandas

python - nlargest on groupby 具有多索引和多个聚合列

python - 使用python在数据框中的某些列中删除具有相同值的行

python - argmax 相对于行的索引

python - Pandas "join"奇怪

python - 比较 2 个数据框中的行并计算相似列的数量