Pandas如何新增一列并按条件赋值?
通过这个示例,我们学习到Pandas中如何使用apply方法实现条件赋值的方法。
   ·  
 在Pandas中,我们经常需要根据某列的值来 conditional 地给其他列赋值。今天我们来看一个示例,对DataFrame新增一列,要求:
- 如果list列为空,则新列值为0
 - 如果list列不为空,则新列值为amount列对应行的值
 
  要实现这个条件赋值,我们可以使用Pandas的apply方法。apply方法可以对DataFrame中的每一行应用一个函数,并将函数的返回值 Assign 到新列中。
具体实现代码如下:
   
import pandas as pd
df = pd.DataFrame({
    'id': [1, 2, 3],
    'list': [[], [1, 2], [3]],
    'amount': [0, 10, 20] 
})
# 定义lambda函数,list为空则返回0,否则返回amount值
df['new_col'] = df.apply(lambda row: 0 if not row['list'] else row['amount'], axis=1)
print(df)
# 输出:
   id  list  amount  new_col
0   1   []       0        0  
1   2  [1, 2]     10       10 
2   3   [3]      20       20
  在lambda表达式中,我们判断list列是否为空,如果为空则返回0,否则返回amount列对应的值。
  这样apply方法就可以根据我们的条件,把返回的值赋给新列new_col。
  通过这个示例,我们学习到Pandas中如何使用apply方法实现条件赋值的方法。apply结合lambda表达式可以灵活地对DataFrame中的数据进行各种运算和处理,是 Pandas 中一个非常有用的工具
更多推荐
 
所有评论(0)