在Pandas Dataframe中组合不同类型的列

时间:2018-04-25 16:16:50

标签: python string pandas dataframe

假设我有一个像这样的DataFrame:

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

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

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

无论如何解决这个问题而不迭代DataFrame的每一行?

1 个答案:

答案 0 :(得分: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)