import pandas as pd
import numpy as np
def ss(x):
try:
res = (x['score']/x['c']).max()
return res
except:
return np.NAN
def main():
df = pd.DataFrame([['A', 0, 4], ['A', 3, 0], ['A', 1, 4], ['B', 5, 9], ['B', 0, 5], ['B', 5, 6]],columns=['name', 'score', 'c'])
# 添加axis=1
df['ss'] = df[['score','c']].apply(lambda x: ss(x), axis=1)
print(df)
if __name__ == '__main__':
main()
运行结果为:
name score c ss
0 A 0 4 0.000000
1 A 3 0 inf
2 A 1 4 0.250000
3 B 5 9 0.555556
4 B 0 5 0.000000
5 B 5 6 0.833333
DataFrame 对每一行做 lambda 处理
最新推荐文章于 2024-01-28 19:04:51 发布