前言
一、df.max()
计算每列最大值
二、df.apply()
1.可以传函数
代码如下(示例):
# lambda 匿名函数自定义 f = lambda x:x.max()-x.min() # x参数 冒号后是返回值 df.apply(f) # 默认axis=0,所以这里是按列求最大值-最小值
2.可以直接写内置函数
代码如下(示例):
df2.apply(np.sum,axis=0) df2.apply(np.sqrt,axis=0) # 求每列的最大值和最小值 def func(x): return pd.Series([x.min(),x.max()],index=['min','max']) df.apply(func)
3.新增列
# 新增"税额"列
df3['税额']=df3['销售价格'].apply(lambda x:x*0.1)
df3
三、map
1.map能够对Series进行映射
format = lambda x:'%.2f'%x # 返回的还是x,但是保留2位小数 df['e'].map(format) format = lambda x:round(x,2) # 返回的还是x,但是保留2位小数 df['e'].map(format)
2.map可以直接映射字典
s = pd.Series(['apple', 'banana', 'carrot', 'apple', 'banana', 'carrot']) price = {'apple': 5.0, 'banana': 2.5, 'carrot': 1.2} s.map(price) s2['price']= s2['水果'].map(price)
四、idxmax()和idxmin()
# 每科的最高分是谁 df4.idxmax() # 返回的是最大值对应的标签索引 # 每科的最低分是谁 df4.idxmin()
五、相关性corr
查看字段之间是否存在相关性,相关的程度大不大 df4['Temperature'].corr(df4['IceCreamSales'])
六、空值处理
1.查看空值
df5.isnull()
2.删除空值
df5.dropna() # axis=0 如果是删除的话,axis=0表示按行删除,axis=1 表示按列删除
只有整行数据为空才进行删除 df5.dropna(how='all')
3.填充 fillna()
df5.fillna({'水电费':10,'食品':20,'交通':30}) # 每列填充不同的值 df5.fillna(0) # 所有空值都填充为0 df5.fillna(df5.mean()) # 每列填充平均值 df5.ffill() # 向上填充 df5.bfill() # 向下填充
4.去重
sales_data.duplicated().sum() sales_data.drop_duplicates()
5.str属性
data = { 'name': ['John', 'Jack', 'Rose', 'Bob'], 'Order Date': ['2023-07-01', '2023-07-02', '2023-07-03', '2023-07-04'], 'Order Details': ['2杯卡布奇诺, 1杯拿铁', '1杯浓缩咖啡, 1杯摩卡', '3杯拿铁', '2杯卡布奇诺, 1杯浓缩咖啡'] } df = pd.DataFrame(data) df # str属性使用的前提是该列单元格数据是字符串 # 多少人点了卡布奇诺 df['Order Details'].str.count('卡布奇诺').sum() # 把name列全部变成大写 df['name'].str.upper() # 把name列全部变成小写 df['name'].str.lower() df['name'].str.len() # 求长度 s.str.split(',',expand=True) df[['地点','经验','学历']] = df['要求'].str.split('-',expand=True) # 展开为多列