前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pd实战

Pd实战

作者头像
爱编程的小明
发布2022-09-06 14:25:51
3030
发布2022-09-06 14:25:51
举报
文章被收录于专栏:小明的博客

主要写一些平时看到的比较常用的一些pd的函数的应用,通过应用场景来辅助更好地理解pandas。

合并高度对称的列

在实际运用过程中,我们可能会拿到形如以下形式的数据:

这样的数据集存在几个列的内容完全一致,因此我们希望实现的一个功能就是将这几个列的值合成一个列,得到形如下图的数据形式:

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame({
    '爱好1': {'小明': '睡觉', '小红': '弹琴'}, '地点1': {'小明': '床上', '小红': '家'}, '爱好2': {
        '小明': '骑马',
        '小红': '开车'
    }, '地点2': {
        '小明': '马场',
        '小红': '车上'
    }
})
df
 #方法1
df[['爱好1', '地点1']].append(df[['爱好2', '地点2']].rename(
    columns={'爱好2': '爱好1', '地点2': '地点1'}))
 #方法2
df['爱好'] = df[['爱好1', '爱好2']].agg(tuple, axis=1)
df['地点'] = df[['地点1', '地点2']].agg(tuple, axis=1)
df['爱好-地点'] = df['爱好'].combine(df['地点'], func=lambda x, y: list(zip(x, y)))
#过滤掉以数字结尾的列
df = df.filter(regex=r'(?<!\d)$')
df = df.explode('爱好-地点')
df[['爱好', '地点']] = df['爱好-地点'].apply(pd.Series)
df
 # 方法3 使用已有函数
df = pd.DataFrame({
    '爱好1': {'小明': '睡觉', '小红': '弹琴'}, '地点1': {'小明': '床上', '小红': '家'}, '爱好2': {
        '小明': '骑马',
        '小红': '开车'
    }, '地点2': {
        '小明': '马场',
        '小红': '车上'
    }
})
pd.lreshape(df, {'爱好': ['爱好1', '爱好2'],
                 '地点': ['地点1', '地点2']
                 })

第二种方法相对来说比较繁琐一些,但是也帮助我们更好地去理解pd的聚合函数。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 合并高度对称的列
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档