python - 当您有太多列时融化(unpivot)Pandas 数据框?
问题描述
我有一个包含以下列的数据框 -
social_media.columns
Index(['respid', 'sample', 'comp', 'int_date', 'lang', 'cregion', 'state',
'density', 'sfips', 'usr', 'qs1', 'sex', 'eminuse', 'intmob', 'intfreq',
'snsint2', 'home4nw', 'bbhome1', 'bbhome2', 'device1a', 'smart2', 'q20',
'bbsmart1', 'bbsmart2', 'bbsmart3a', 'bbsmart3b', 'bbsmart3c',
'bbsmart3d', 'bbsmart3e', 'bbsmart3f', 'bbsmart3foe@', 'bbsmart4',
'web1a', 'web1b', 'web1c', 'web1d', 'web1e', 'web1f', 'web1g', 'web1h',
'web1i', 'sns2a', 'sns2b', 'sns2c', 'sns2d', 'sns2e', 'device1b',
'device1c', 'device1d', 'books1', 'books2a', 'books2b', 'books2c',
'age', 'marital', 'educ2', 'emplnw', 'hisp', 'racem1', 'racem2',
'racem3', 'racem4', 'racecmb', 'birth_hisp', 'inc', 'party', 'partyln',
'hh1', 'hh3', 'ql1', 'ql1a', 'qc1', 'weight', 'cellweight'],
dtype='object')
我只想融化与 web1a、web1b ---- web1i 相关的列,并希望其他列保持原样。我知道我必须指定我不想取消透视的所有列,我必须将它们包含在pandas melt 函数的id_vars参数中,但是您可以看到我必须复制和粘贴许多列。
有没有更简单的方法可以做到这一点?
解决方案
我们可以使用DataFrame.filter
正则表达式来解决您选择某些列的问题:
案例1:选择所有列web
:
social_media.filter(like='web').columns
Index(['web1a', 'web1b', 'web1c', 'web1d', 'web1e', 'web1f', 'web1g', 'web1h',
'web1i'],
dtype='object')
情况 2:选择名称中没有web
的所有列:
social_media.filter(regex='^[^web]').columns
Index(['respid', 'sample', 'comp', 'int_date', 'lang', 'cregion', 'state',
'density', 'sfips', 'usr', 'qs1', 'sex', 'intmob', 'intfreq', 'snsint2',
'home4nw', 'device1a', 'smart2', 'q20', 'sns2a', 'sns2b', 'sns2c',
'sns2d', 'sns2e', 'device1b', 'device1c', 'device1d', 'age', 'marital',
'hisp', 'racem1', 'racem2', 'racem3', 'racem4', 'racecmb', 'inc',
'party', 'partyln', 'hh1', 'hh3', 'ql1', 'ql1a', 'qc1', 'cellweight'],
dtype='object')
推荐阅读
- python - 警告:类“list”的未解析属性引用“all”
- python - 我的 docker 容器与我的 pc 具有相同的模块,但无法正常工作
- vue.js - Vue 组件无故更新(重新渲染)
- php - 如何为每个产品创建带有复选框的容器
- reactjs - Html 代码在 React Visual Studio Code 中未突出显示
- .net - 在 .NET 项目中管理 SQL 查询纯文本字符串
- apache-spark - 如何用新的数据框更新现有的火花数据框
- date - 无论时区如何,BigQuery 时间戳都转换为日期
- python-3.x - 如何过滤具有多个搜索条件的数据库搜索结果?
- javascript - Firebase 云函数聚合数据用户问题