【问题标题】:Combine columns of different types in Pandas Dataframe在 Pandas Dataframe 中组合不同类型的列
【发布时间】:2018-10-06 04:57:53
【问题描述】:

假设我有一个这样的 DataFrame:

df = pd.DataFrame({'col1':[0.2, 0.3, .5], 'col2':['a', 'b', 'c']})

我想获得第三列 col3,类似于:

{'col1':['20% a', '30% b, '50% c']}

是否有办法在不迭代 DataFrame 的每一行的情况下解决这个问题?

【问题讨论】:

    标签: python string pandas dataframe


    【解决方案1】:

    这是一种方式。

    df = pd.DataFrame({'col1':[0.2, 0.3, .5], 'col2':['a', 'b', 'c']})
    
    df['col3'] = (df['col1']*100).astype(int).apply(str) + '% ' + df['col2']
    
    print(df)
    
       col1 col2   col3
    0   0.2    a  20% a
    1   0.3    b  30% b
    2   0.5    c  50% c
    

    正如@JonClements 指出的那样,您可以将lambda 与字符串格式一起使用,但我对它们过敏......只有in small doses 好:

    df['cole'] = df.apply(lambda r: f'{r.col1 * 100}% {r.col2}', 1)
    

    【讨论】:

    • 但是我们没有知道使用apply(str)faster 吗? :-)
    • @pault,是的,这是真的 :)。但是仍然没有 C 级的解释!
    • 也可以这样做:df.apply(lambda r: f'{r.col1 * 100}% {r.col2}', 1)(虽然速度稍慢)
    猜你喜欢
    • 2012-06-13
    • 2020-05-24
    • 2015-01-24
    • 1970-01-01
    • 2019-07-03
    • 2018-05-12
    • 2021-07-28
    • 2018-09-16
    • 2020-09-01
    相关资源
    最近更新 更多