首页 > 解决方案 > 在 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 的每一行的情况下解决这个问题?

标签: pythonstringpandasdataframe

解决方案


这是一种方式。

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字符串格式,但我对它们过敏.. 只在小剂量下有效:

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

推荐阅读