|
以下是解决您问题的Python代码,使用Pandas的apply函数逐行处理数据:
- import pandas as pd
- # 示例数据(替换为您的实际数据)
- data = {'A': [10, 20, 30], 'B': [3, 2, 4]}
- df = pd.DataFrame(data)
- # 核心处理逻辑
- def create_list(row):
- base = row['A']
- count = row['B']
- return [base + i for i in range(count)] # 生成base+0到base+(count-1)的列表
- df['C'] = df.apply(create_list, axis=1) # axis=1表示按行处理
- print(df)
复制代码
执行结果示例:
- A B C
- 0 10 3 [10, 11, 12]
- 1 20 2 [20, 21]
- 2 30 4 [30,31,32,33]
复制代码
关键说明:
1. create_list 函数处理每行数据:
- row['A'] 作为基准值
- row['B'] 决定列表长度
2. range(row['B']) 生成0到B-1的整数序列
3. 列表推导式 [base + i for i in range(count)] 创建新列表
4. df.apply(..., axis=1) 确保函数应用到每一行
注意事项:
- 如果B列包含0,会生成空列表 []
- B列应为正整数(负数会导致空列表)
- 处理百万级数据时建议改用向量化操作提升性能
需要处理其他特殊情况可继续提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|