【问题标题】:Convert values in a column to a single row Python将列中的值转换为单行 Python
【发布时间】:2018-03-29 05:56:15
【问题描述】:

我有一个看起来像这样的熊猫数据框:

Area1  Area2 
  1      2      
  1      4
  1      5
  1      9
  2      8
  2      16
  2      4
  2      1
  3      8
  3      9

如何转换“Area2”列,使其成为每个“Area1”列的值列表

所以我想要的输出是:

Area1     Area2 
  1      2, 4, 5, 9     
  2      8, 16, 4, 1
  3      8, 9

我以前在 R 中做过这个:

df %>% group_by(Area1) %>% summarise(Area2= toString(sort(unique(Area2)))) 

我一直在尝试 groupby() 和 agg() 但没有成功。

有人可以解释一下我使用 df.groupby('Area1') 对数据进行分组后可以使用什么

非常感谢您的任何建议。

【问题讨论】:

    标签: python aggregate pandas-groupby


    【解决方案1】:

    您可以分组并应用列表

    import pandas as pd
    df=pd.read_csv("test.csv")
    df.groupby('Area1')['Area2'].apply(list)
    

    【讨论】:

      【解决方案2】:

      R sn-p 进行字符串连接。

      以下行保留Area2 的原始类型。

      import pandas as pd
      
      df.groupby('Area1').Area2.apply(pd.Series.tolist).reset_index()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-26
        • 1970-01-01
        • 1970-01-01
        • 2021-09-22
        • 2016-11-09
        • 2017-10-25
        • 1970-01-01
        相关资源
        最近更新 更多