1. lambda函数
#冒号:之前的a,b,c表示它们是这个函数的参数。
#匿名函数不需要return来返回值,表达式本身结果就是返回值。
#平方,一个参数
square = lambda x: x**2
print(square(2))
#4
#乘积,三个参数
product = lambda x,y,z: x*y*z
print(product(2,3,4))
#24
2.df.reset_index()
.reset_index(drop=True)
reset_index重置索引;drop=True删除原索引
3. if else for in
c = a if a>b else b //如果a>b返回a,否则返回b
c = [ i for i in a if i%2==0 ] //遍历a,在i为偶数时返回
a = [1,2,3,4]
c = [i for i in a if i%2==0]
c
#[2, 4]
c = [i if i%2==0 else 1 for i in a] //遍历a,如果i为偶数直接返回,否则直接返回1。此处if写在for前面要求必须有else项
a = [1,2,3,4]
c = [i if i%2==0 else 1 for i in a ]
c
#[1, 2, 1, 4]
‘’.join[‘1’,‘2’] //字符list的连接
c = ''.join(['1','2','a'])
c
# '12a'
4.apply函数
apply函数是自动根据function遍历每一个数据,然后返回一个数据结构为Series的结果
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
#该函数最有用的是第一个参数,这个参数是函数
#axis:0是类,1是行,默认axis=0
import numpy as np
import pandas as pd
a = np.arange(1,13).reshape(3,4)
df = pd.DataFrame(a,columns=list('abcd'))
print(df)
t1 = df.apply(lambda x:x.sum())
t2 = df.apply(lambda x:x.sum(),axis=1)
#应用于Series数据
t3 = df['a'].apply(lambda x:x*x)
print(t1)
print(t2)
print(t3)
a b c d
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
a 15
b 18
c 21
d 24
dtype: int64
0 10
1 26
2 42
dtype: int64
0 1
1 25
2 81
Name: a, dtype: int64
**apply的使用总共基本用于三处
1是你要对每条记录进行遍历去函数计算出一个值,
2是你要对某一列进行操作,
3是你groupby后要对每个group后的字表df **
df.apply(lambda x:func(x,args**),axis=1)
df.apply(lambda x:func(x,args**),axis=0)
df.groupby([column1]).apply(lambda x:func(x,args**))
函数中有多个参数,可以使用args=(),括号里面就是除第一个参数外,其余的参数
5. 控制字符 “\033”
书写过程
开头部分: \033[显示方式;前景色;背景色m
结尾部分: \033[0m
参数
显示方式: 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)
print("\033[41;36m you are the best!!! \033[0m")
![41 表示背景颜色:红色,36表示字体颜色:黄色;最后的 \033[0m表示关闭所有属性,如果不加,会把这个效果延续要整个以后的待print信息中。]
print("\033[1;31m you are the best!!! \033[0m")