lambda 参数:表达式
lambda x, y: x*y # 函数输入是x和y,输出是它们的积x*y lambda:None # 函数没有输入参数,输出是None lambda *args: sum(args) # 输入是任意个数参数,输出是它们的和(隐性要求输入参数必须能进行算术运算) lambda **kwargs: 1 # 输入是任意键值对参数,输出是1
apply方法都是通过传入一个函数或者lambda表达式对数据进行批量处理 apply方法处理的都是一个Series对象
df.apply(np.sqrt) df.apply(np.sum, axis=0) df.apply(np.sum, axis=1) data['col'] = data['col'].apply(lambda x: round(x))
combine 英/kəmˈbaɪn , ˈkɒmbaɪn/ 美/kəmˈbaɪn , ˈkɑːmbaɪn/ v.(使)结合;联合;合并;混合;使融合(或并存);兼有;兼备;同时做(两件或以上的事);兼做;兼办
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'A':[1,np.nan], 'B':[np.nan,4]})
df2 = pd.DataFrame({'A':[10,20], 'B':[30,np.nan]})
df1
|
|
|
|
|
|
|
|
axis=1 列维度
b2 = pd.concat([b2,tmp],axis=1)
axis=0 行维度
b2 = pd.concat([b2,tmp],axis=0)
data_pd = pd.DataFrame.from_dict(self.val_dict, orient='index').T .T 转置,行列互换一下
参数是函数
与apply完全等效 data['col'] = data['col'].apply(lambda x: round(x)) 等价于 data['col'] = data['col'].map(lambda x: round(x))
参数是字典:映射功能
dic = {"aaa":"bbb"}
data['col'] = data['col'].map(dic)
它会将原data中col值为aaa的数值转换/映射为bbb
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40]
})
# 创建一个条件,要求 A 大于 2 并且 B 小于 35
condition = (df['A'] > 2) & (df['B'] < 35)
# 根据条件更新列
df['C'] = df['B'].where(condition, 999)
print(df)
A B C
0 1 10 999
1 2 20 999
2 3 30 30
3 4 40 999
|
|
|
|
|
|
|
|
import pandas as pd data = pd.DataFrame([[1,2,3],[1,2,3],[1,2,3]],columns=["a","b","c"]) data.columns # Index(['a', 'b', 'c'], dtype='object')
data.values
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
type(data.values)
numpy.ndarray
pandas之apply函数简介及用法详解
Python 教学 | Pandas 函数应用(apply/map)【下】
Pandas核心操作map、apply、applymap超详解(面试常问)