【问题标题】:How to concat Pandas dataframe columns如何连接 Pandas 数据框列
【发布时间】:2016-07-01 20:41:22
【问题描述】:

如何在 Pandas 数据框中连接不同数据类型的列,以便如果列 number 与列 operator 连接,并且我执行 groupby('user').sum(),我可以进行适当的聚合:

    number   operator user
id                      
1      193        -    A
2      332        +    B
3     4434        +    A
4      432        -    C
5      652        +    C
6      567        +    D


#after concat:

    number operator user
id                      
1     -193        -    A
2      332        +    B
3     4434        +    A
4     -432        -    C
5      652        +    C
6      567        +    D


#df.groupby('user').sum()

      number
user        
A       4241
B        332
C        220
D        567

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用带有布尔掩码的loc 使“数字”值为负数:

    In [34]:
    df.loc[df['operator'] == '-', 'number'] = -df['number']
    df
    
    Out[34]:
        number operator user
    id                      
    1     -193        -    A
    2      332        +    B
    3     4434        +    A
    4     -432        -    C
    5      652        +    C
    6      567        +    D
    

    然后您可以在“用户”上的groupby 可以在“号码”列上调用sum

    In [35]:    
    df.groupby('user')['number'].sum()
    
    Out[35]:
    user
    A    4241
    B     332
    C     220
    D     567
    Name: number, dtype: int64
    

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 1970-01-01
      • 2020-03-14
      • 2019-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 2014-04-24
      相关资源
      最近更新 更多