假设我有一个像这样的DataFrame:
df = pd.DataFrame({'col1':[0.2, 0.3, .5], 'col2':['a', 'b', 'c']})
我想获得第三列col3,它类似于:
{'col1':['20% a', '30% b, '50% c']}
无论如何解决这个问题而不迭代DataFrame的每一行?
答案 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)