如何根据DataFrame指定数值实现字符串乘法并生成新列?
Pandas 生成自定义格式列的实现方法
可以通过两种常见方式实现需求,以下是具体代码和说明:
方法一:使用apply逐行处理
这种方式写法直观,适合快速实现:
import pandas as pd # 构建示例DataFrame df = pd.DataFrame({ 'start_time': [1, 2], 'end_time': [2, 5] }) # 新增目标列 df['new_col'] = df.apply( lambda row: ' ' * row['start_time'] + '*' * (row['end_time'] - row['start_time'] + 1), axis=1 ) # 查看结果 print(df)
执行后输出结果:
start_time end_time new_col 0 1 2 ** 1 2 5 ****
方法二:矢量化处理(适合大数据集)
如果你的DataFrame数据量较大,推荐使用矢量化方式提升效率:
import pandas as pd import numpy as np # 构建示例DataFrame df = pd.DataFrame({ 'start_time': [1, 2], 'end_time': [2, 5] }) # 定义生成目标字符串的函数 def generate_target_str(start, end): return ' ' * start + '*' * (end - start + 1) # 用矢量化函数批量生成列值 df['new_col'] = np.vectorize(generate_target_str)(df['start_time'], df['end_time'])
两种方法最终都会生成符合要求的new_col列,根据数据量大小选择即可。
内容的提问来源于stack exchange,提问作者Daniel Wu
相关产品推荐
相关产品推荐

