1. map函数的使用
有时候为了代码简介和避免使用for循环,可以直接使用map函数进行数据操作。
输入是一个list列表;
输出在python3中是一个map对象;
使用代码如下:
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
def square(x): # 计算平方数
return x ** 2
def map_f():
# 1111--计算列表各个元素的平方,#返回一个map对象
map_a=map(square, [1, 2, 3, 4, 5])
#取map里面的值计算时,可以将其转化为list再计算
print(list(map_a))
# 2222--使用 lambda 匿名函数
map_b=map(lambda x: x ** 2, [1, 2, 3, 4, 5])
map_b=list(map_b)
print(map_b)
# 3333--提供了两个列表,对相同位置的列表数据进行相加
print(list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])))
# 4444--series直接调用map函数,使用dataframe时常用
map_c=pd.DataFrame(map_b)
map_c.columns=['ccid']
c=map_c['ccid'].map(square)
print(c)
if __name__ == '__main__':
map_f()
pass
2. diff函数
diff函数用于某列或者某行数据的差分,pandas和numpy都可以直接调用。
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
def square(x): # 计算平方数
return x ** 2
def diff_f():
data = pd.DataFrame(np.random.randint(low=1, high=10, size=(4, 2)))
print(data)
data.columns=['A','B']
#向下移
data['C']=data['A'].diff(2)
print(data)
#向上移
data['D'] = data['B'].diff(-1)
print(data)
pass
if __name__ == '__main__':
diff_f()
pass
对pandas中的Series操作:
data['C']=data['A'].diff(periods)
data为dataframe数据——
periods:表示移动的幅度。它是任意整数,如果是想让数据统一向下移动n个periods,则n为正,如果是想让数据向上移动n个periods,则n为负。