主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每次会取出DataFrame的一行来做处理,如果axis为1则每次取一列。
import pandas as pd
import os
pd.set_option('display.max_rows',1000) # 具体的行数或列数可自行设置
pd.set_option('display.max_columns',1000)
df=pd.read_csv("testfile1.csv",header=0,encoding="gbk")
def new_sort(row):
if row["sex"]=="男":
part1="M"
else:
part1="F"
if row["score"]>85:
part2="A"
else:
part2="B"
final=part1+"_"+part2
return final
df["new_val"]=df.apply(lambda x:new_sort(x),axis=1)
print(df)
输出为:
ID sex subject score new_val
0 10001 男 English 100 M_A
1 10002 女 Maths 85 F_B
2 10003 女 English 87 F_A
3 10004 女 science 100 F_A
4 10005 女 English 95 F_A
5 10006 男 science 96 M_A
6 10007 女 Maths 89 F_A
7 10008 男 science 87 M_A
8 10009 男 ICT 85 M_B
9 10010 男 ICT 97 M_A
10 10011 男 Maths 86 M_A
参考:https://blog.csdn.net/qq_30565883/article/details/79464266
以上,记录本人学习过程。