Pandas(第十五集:DataFrame数据映射)


序号函数说明
1replace()函数替换元素
2map()函数处理某一单独的列【最重要】—用于Series
3rename()函数替换索引
4apply()函数对数据进行操作,既支持Series,也支持DataFrame
5transform()函数对数据进行操作,既支持Series,也支持DataFrame

1. 源数据

def make_df(indexs, columns):
    data = [[str(j) + str(i) for j in columns] for i in indexs]
    df = pd.DataFrame(data=data, index=indexs, columns=columns)
    return df

df = make_df([1, 2, 3, 4], list('ABCD'))

在这里插入图片描述

2. replace()函数【替换元素】

df.replace({'A1': 'A11', 'B3': 'B33'})

在这里插入图片描述

3. map()函数【对一列数据进行处理】

df2 = df.copy()
# map() 一般用在Series数据结构,不能用于DataFrame
# 将第一列中的数据 乘2
df2['A'].map(lambda x: x * 2)
# 新增一列:判断第一列的数据是否及格
df2['A_JG'] = df2['A'].map(lambda n: '及格' if n == 'A2' else '不及格')

在这里插入图片描述

4. rename()函数【替换索引】

df2.rename(index={1: 'Mr.A'})  # 默认情况下 只修改行索引

在这里插入图片描述

df2.rename(columns={'A': 'a_column'}, axis=1)  # 修改列索引

在这里插入图片描述

# 重置索引,会生成0123这样的索引,原有的索引会生成index这一列的数据
df2.reset_index()

在这里插入图片描述

# 设置索引,将列变成行索引
df2.set_index(keys=['D'])

在这里插入图片描述

5. apply()函数

​ Pandas 的 apply() 方法是用来调用一个函数,让此函数对数据对象进行批量处理。
apply() 使用时,通常放入一个 lambda 函数表达式、或一个函数作为操作运算。

5.1 源数据

data = np.random.randint(0, 10, size=(5, 3))
df = pd.DataFrame(data=data, index=list('ABCDE'), columns=['Python', 'NumPy', 'Pandas'])

在这里插入图片描述

5.2 对Series进行操作,大于5的数据为True,否则为False

df['Python_pd'] = df['Python'].apply(lambda x: True if x > 5 else False)

在这里插入图片描述

5.3 对DataFrame进行操作,求均值

# axis=0列 axis=1行
# x指的是DataFrame中某一列或某一行的Series数据
df['mean'] = df.apply(lambda x: x.mean(), axis=1)

在这里插入图片描述

5.4 applymap()是DataFrame专有的方法,其中的x是每一个元素

df.applymap(lambda x: x + 100)

6. transform()函数【既支持Series,也支持DataFrame】

transform()是pandas中的转换函数,对DataFrame执行传入的函数后返回一个相同形状的DataFrame

df2['Python'].transform([np.sqrt, np.exp])

在这里插入图片描述

def convert(x):
    if x.mean() > 5:
        return x * 10
    else:
        return x * (-10)


print(df2.transform(convert))  # 对列进行操作
# print(df2.transform(convert, axis=1))  # 对行进行操作

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monly21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值