Pandas DataFrame:如何按列中的值分组并从分组值中创建新列

宣布

我有一个包含两列的数据框:

x y
0 1
1 1
2 2
0 5
1 6
2 8
0 1
1 8
2 4
0 1
1 7
2 3

我想要的是:

x val1 val2 val3 val4
0 1 5 1 1
1 1 6 8 7
2 2 8 4 3

我知道x列中的值重复了N次。

算了吧

您可以groupby/cumcount用来分配列号,然后调用pivot

import pandas as pd

df = pd.DataFrame({'x': [0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2],
                   'y': [1, 1, 2, 5, 6, 8, 1, 8, 4, 1, 7, 3]})

df['columns'] = df.groupby('x')['y'].cumcount()
#     x  y  columns
# 0   0  1        0
# 1   1  1        0
# 2   2  2        0
# 3   0  5        1
# 4   1  6        1
# 5   2  8        1
# 6   0  1        2
# 7   1  8        2
# 8   2  4        2
# 9   0  1        3
# 10  1  7        3
# 11  2  3        3

result = df.pivot(index='x', columns='columns')
print(result)

产量

         y         
columns  0  1  2  3
x                  
0        1  5  1  1
1        1  6  8  7
2        2  8  4  3

或者,如果您真的可以依赖于以N次x重复的值

N = 3
result = pd.DataFrame(df['y'].values.reshape(-1, N).T)

产量

   0  1  2  3
0  1  5  1  1
1  1  6  8  7
2  2  8  4  3

使用reshape的速度比调用groupby/cumcount和的速度更快pivot,但是它的健壮性较低,因为它依赖y于以正确顺序出现的值

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Pandas:如何按连续列值分组

来自分类Dev

按两列中的值分组并在Pandas中过滤

来自分类Dev

如何按pandas中的列分组并根据列值应用ifelse

来自分类Dev

分组值并根据Pandas中的列删除分组的重复项

来自分类Dev

计算pandas数据框中的共存,以得到按其他列值分组的列值

来自分类Dev

根据 Pandas 中另一列中相似值的分组创建一个新列

来自分类Dev

Pandas DataFrame基于多个条件的分组添加新的列值

来自分类Dev

Pandas DataFrame-当按另一列分组时如何获取每列的最新值

来自分类Dev

按列总和值与Pandas分组

来自分类Dev

在Pandas Dataframe中按一列排序,然后按另一列分组?

来自分类Dev

Python pandas:按一列(例如名称)分组的数据框,并获取每组中某些列的值

来自分类Dev

如何在Python Pandas中对具有计数唯一值的多列进行分组

来自分类Dev

在Pandas Dataframe中显示多列,但仅按一列进行分组和计数

来自分类Dev

Pandas - 基于特定列的值在 DataFrame 中创建单独的列

来自分类Dev

通过将pandas数据框中的单个列分组来创建新列

来自分类Dev

在 Pandas DataFrame 中按连续索引分组

来自分类Dev

如何遍历Pandas中的列值并基于同一行中多个列的值创建新的观察值?

来自分类Dev

按列列表中的值过滤Pandas DataFrame

来自分类Dev

如何在pandas数据框中获取具有部分总和的列(按两列分组)

来自分类Dev

根据Pandas中不同列的分组依据更新特定列的值

来自分类Dev

使用python词典中的值的新pandas dataframe列

来自分类Dev

分组汇总两列,并在pandas中创建新的数据框

来自分类Dev

分组并通过在Pandas中随机分配多个字符串来创建新列

来自分类Dev

拆分并从列值中取出一部分字符串,然后在 Pandas python 中创建新列

来自分类Dev

分组并计算pandas / python中的条件值

来自分类Dev

在Pandas中对期间序列值进行分组

来自分类Dev

按两列(或更多列)将pandas dataframe分组?

来自分类Dev

按两列(或更多列)将pandas dataframe分组?

来自分类Dev

如果列值存在于指定列表中,如何使用Pandas将行分组在一起?

Related 相关文章

  1. 1

    Pandas:如何按连续列值分组

  2. 2

    按两列中的值分组并在Pandas中过滤

  3. 3

    如何按pandas中的列分组并根据列值应用ifelse

  4. 4

    分组值并根据Pandas中的列删除分组的重复项

  5. 5

    计算pandas数据框中的共存,以得到按其他列值分组的列值

  6. 6

    根据 Pandas 中另一列中相似值的分组创建一个新列

  7. 7

    Pandas DataFrame基于多个条件的分组添加新的列值

  8. 8

    Pandas DataFrame-当按另一列分组时如何获取每列的最新值

  9. 9

    按列总和值与Pandas分组

  10. 10

    在Pandas Dataframe中按一列排序,然后按另一列分组?

  11. 11

    Python pandas:按一列(例如名称)分组的数据框,并获取每组中某些列的值

  12. 12

    如何在Python Pandas中对具有计数唯一值的多列进行分组

  13. 13

    在Pandas Dataframe中显示多列,但仅按一列进行分组和计数

  14. 14

    Pandas - 基于特定列的值在 DataFrame 中创建单独的列

  15. 15

    通过将pandas数据框中的单个列分组来创建新列

  16. 16

    在 Pandas DataFrame 中按连续索引分组

  17. 17

    如何遍历Pandas中的列值并基于同一行中多个列的值创建新的观察值?

  18. 18

    按列列表中的值过滤Pandas DataFrame

  19. 19

    如何在pandas数据框中获取具有部分总和的列(按两列分组)

  20. 20

    根据Pandas中不同列的分组依据更新特定列的值

  21. 21

    使用python词典中的值的新pandas dataframe列

  22. 22

    分组汇总两列,并在pandas中创建新的数据框

  23. 23

    分组并通过在Pandas中随机分配多个字符串来创建新列

  24. 24

    拆分并从列值中取出一部分字符串,然后在 Pandas python 中创建新列

  25. 25

    分组并计算pandas / python中的条件值

  26. 26

    在Pandas中对期间序列值进行分组

  27. 27

    按两列(或更多列)将pandas dataframe分组?

  28. 28

    按两列(或更多列)将pandas dataframe分组?

  29. 29

    如果列值存在于指定列表中,如何使用Pandas将行分组在一起?

热门标签

归档