这是我的pandas DataFrame,带有原始列名.

old_dt_cm1_tt old_dm_cm1 old_rr_cm2_epf old_gt

1 3 0 0

2 1 1 5

>首先,我想提取cm的所有独特变体,例如在这种情况下cm1和cm2.

>在此之后,我想为每个独特的cm创建一个新列.在此示例中,应该有2个新列.

>最后,在每个新列中,我应该存储非零原始列值的总数,即

06001

我实现了第一步如下:

cols = pd.DataFrame(list(df.columns))

ind = [c for c in df.columns if 'cm' in c]

df.ix[:, ind].columns

如何继续执行步骤2和3,以便解决方案是自动的(我不想手动定义列名cm1和cm2,因为在原始数据集中我可能有很多cm变化.

最佳答案 您可以使用:

print df

old_dt_cm1_tt old_dm_cm1 old_rr_cm2_epf old_gt

0 1 3 0 0

1 2 1 1 5

首先,您可以将filter列包含字符串cm,因此将删除不包含cm的列.

df1 = df.filter(regex='cm')

现在,您可以将列更改为新值,如cm1,cm2,cm3.

print [cm for c in df1.columns for cm in c.split('_') if cm[:2] == 'cm']

['cm1', 'cm1', 'cm2']

df1.columns = [cm for c in df1.columns for cm in c.split('_') if cm[:2] == 'cm']

print df1

cm1 cm1 cm2

0 1 3 0

1 2 1 1

现在您可以计算非零值 – 将df1更改为布尔值DataFrame,将sum – True转换为1并将False转换为0.您需要按唯一列名称计数 – 因此groupby列和sum值.

df1 = df1.astype(bool)

print df1

cm1 cm1 cm2

0 True True False

1 True True True

print df1.groupby(df1.columns, axis=1).sum()

cm1 cm2

0 2 0

1 2 1

您需要unique列,这些列将添加到原始df:

print df1.columns.unique()

['cm1' 'cm2']

最后你可以从groupby函数添加df [[‘cm1′,’cm2’]]的新列:

df[df1.columns.unique()] = df1.groupby(df1.columns, axis=1).sum()

print df

old_dt_cm1_tt old_dm_cm1 old_rr_cm2_epf old_gt cm1 cm2

0 1 3 0 0 2 0

1 2 1 1 5 2 1

python 新建一列_python – 如何处理列名称和创建新列相关推荐

  1. python两列相乘_Python代码将两列相乘,然后用值创建新列

    我正在编写一个python代码,它首先将分钟数据平均为小时数据.然后我想乘以小时数据中两列中的值,并用乘以的值创建一个新列.我被困在乘法步上了.import pandas as pd import n ...

  2. python 新建一列_python – 如何在迭代pandas数据框时创建新列并插入行值

    我正在尝试创建一个逐行迭代pandas数据帧的函数.我想基于其他列的行值创建一个新列.我的原始数据框可能如下所示: df: A B 0 1 2 1 3 4 2 2 2 现在我想在每个索引位置创建一个填 ...

  3. python dataframe 列_python pandas库中DataFrame对行和列的操作实例讲解

    用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFram ...

  4. python dataframe去掉索引_python中pandas.DataFrame(创建、索引、增添与删除)的简单操作方法介绍...

    这篇文章python中pandas.DataFrame(创建.索引.增添与删除)的简单操作方法介绍,其中包括创建.索引.增添与删除等的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看 ...

  5. python django restful框架_python+django+rest框架配置创建方法

    安装好所需要的插件和包: python.django.pip等版本如下: 采用Django REST框架3.0 1.在python文件夹下D:\python\Lib\site-packages\dja ...

  6. Python+django网页设计入门(19):创建新模型扩展自带用户表的字段

    公众号送书活动火热进行中:新学期福利,送18本Python图书 ================== 前导课程: Python+django网页设计入门(18):自定义模板过滤器 Python+dja ...

  7. python csv文件参数化_Python 读取csv文件的某一列数据,并定义两个pattern,确定变化区间...

    Python 读取csv文件的某一列数据,并定义两个pattern,[-1, 1, 1] 和 [1, -1, -1]可以确定不同的变化区间 抓取股票数据,确定股票的变化区间. Date 3D10 20 ...

  8. python 列联表自动拆分_python自动化办公:实现按照一列内容拆分excel

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 作者:卡卡 来源:卡卡的霍格莫德小镇 用python将某一列按照内容分成多个excel 我们经常会 ...

  9. python中读取指定的行和列_Python怎么获取excle中指定行和列的值?

    ''' https://www.cnblogs.com/xiazhenyu/ *** 学而思之.思而记之.记而习之 *** ''' f="dict_file.txt" #定义文件名 ...

最新文章

  1. 发展第三代AI:清华AI研究院基础理论研究中心成立,朱军任主任
  2. CentOS6.7防火墙(Iptables)的开启与关闭
  3. Object/DataSet Relational Mapping(对象/数据集关系映射)完整版本下载
  4. 【Apache POI】Java写入Excel文件
  5. Android中.9.png图片的使用过程和原理
  6. mysql字符集排序规则_Mysql 字符集及排序规则
  7. 如何用for循环出数据库的数据
  8. C++ STL stirng的复制比较
  9. RecyclerView.ItemDecoration 间隔线
  10. 简单的心形html代码,bat心形代码的简单示例
  11. 大规模定制(Mass Customization,MC)
  12. openvpn下的路由和桥接模式
  13. 帕斯卡齿轮机械计算机原理,20世纪的黑科技,上万个零件的老式机械计算器,复杂程度惊人!...
  14. 基于HAL库的stm32F7串口通信
  15. 皮克定理,多边形面积以及线段上整点个数
  16. k8s pod分类、核心组件、网络模型、kubectl常用命令
  17. 雨林木风最新万能GHOST系统制作教程
  18. 黑客搜索大法(Google Hacking)
  19. ubuntu的gnome环境下使用todesk远程工具
  20. 二进制与或非逻辑计算机,深度学习(1):给感知机做准备,谈谈二进制和与或非门。...

热门文章

  1. Uploadify v3.2.1
  2. 互联网产品接入支付功能如何测试?
  3. li在ie6 、ie7里莫名其妙的出现几px的margin
  4. 为AD用户启用或禁用OCS 2007 R2帐户
  5. 复制到剪贴板的js代码(兼容ie、firefox、chorme、safari...什么都兼容!)
  6. office老是提示Microsoft office word 遇到问题需要关闭,问是否发送错误报告
  7. Ajax与WebGIS
  8. bash命令怎么在linux系统中使用
  9. 从落后的传统WAN转向SD-WAN—Vecloud
  10. 如何配置网络地址转换(NAT)—Vecloud微云