【问题标题】:How to collapse Pandas Dataframe Columns and Concatenate Strings如何折叠 Pandas 数据框列和连接字符串
【发布时间】:2014-04-24 20:53:37
【问题描述】:

我有一个包含 n 列的数据框 df0。 只有一列包含字符串,其他所有列为空或包含“”字符串。

是否可以将数据框折叠成单列数据框,其中每一行我都得到非空元素?

df0:

    A    B     C
1  Car
2  Car 
3       Bike
4  Car
5            Train
6            Train

应该给:

    1    
1  Car
2  Car 
3  Bike
4  Car
5  Train
6  Train

【问题讨论】:

    标签: pandas dataframe paste collapse


    【解决方案1】:

    也许:

    >>> df.max(axis=1)
    1      Car
    2      Car
    3     Bike
    4      Car
    5    Train
    6    Train
    dtype: object
    

    这是一个Series,而不是DataFrame,但你可以使用df.max(axis=1).to_frame(1) 或其他东西制作一个。

    【讨论】:

      【解决方案2】:

      如果它们是空字符串而不是 NaN,您可以使用 .sum:

      In [11]: df.fillna('').sum(1)
      Out[11]: 
      1      Car
      2      Car
      3     Bike
      4      Car
      5    Train
      6    Train
      dtype: object
      

      【讨论】:

      • 顺便说一句:我很惊讶只做 sum(1) 没有用 - 我希望它会。
      【解决方案3】:

      这也可以,假设总是有一列带有非空字符串:

       df.apply(lambda x: [y for y in x.values if y!=''][0],axis=1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        • 2017-09-16
        • 2017-03-23
        • 2021-09-28
        • 2023-01-03
        • 2023-01-31
        相关资源
        最近更新 更多