【问题标题】:Combine multiple columns into 1 column [python,pandas]将多列合并为 1 列 [python,pandas]
【发布时间】:2016-09-22 09:05:11
【问题描述】:

我有一个包含 2 列的 pandas 数据框: {'A':[1, 2, 3],'B':[4, 5, 6]}

我想创建一个新列,其中: {'C':[1 4,2 5,3 6]}

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    设置

    df = pd.DataFrame({'A':[1, 2, 3],'B':[4, 5, 6]})
    

    解决方案

    请记住,根据您的预期输出,[1 4,2 5,3 6] 不是问题。我将您解释为[(1, 4), (2, 5), (3, 6)]["1 4", "2 5", "3 6"]

    第一个假设

    df.apply(lambda x: tuple(x.values), axis=1)
    
    0    (1, 4)
    1    (2, 5)
    2    (3, 6)
    dtype: object
    

    第二个假设

    df.apply(lambda x: ' '.join(x.astype(str)), axis=1)
    
    0    1 4
    1    2 5
    2    3 6
    dtype: object
    

    【讨论】:

    • 很好的答案!但是,对于大文件,使用 apply 需要很长时间。但这会带来预期的结果。
    【解决方案2】:

    如果您不介意 zip 对象,那么您可以使用df['C'] = zip(df.A,df.B)。 如果你喜欢元组,那么你可以使用list() 投射 zip 对象。请参考此post。在这种情况下使用 zip 非常方便。

    【讨论】:

      猜你喜欢
      • 2017-03-25
      • 2016-01-10
      • 1970-01-01
      • 2018-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多