在进行数据分析时,我们经常需要把DataFrame的一列拆成多列或者根据某列把一行拆成多行,这篇文章主要讲解这两个目标的实现。 码字不易,喜欢请点赞!!!

  1. 读取数据
  2. 将City列转成多列(以‘|’为分隔符)
    这里使用匿名函数lambda来讲City列拆成两列。
    在这里插入图片描述
    3.将DataFrame一行拆成多行(以‘|’为分隔符)
    方法一:在刚刚得到的DataFrame基础上操作,如下图所以,可以明显看到我们按照City列将DataFrame拆成了多行。主要是先将DataFrame拆成多列,然后拆成多个DataFrame再使用concat组合。但是这种方法碰到City列切割不均匀的时候可能会麻烦一点,因此,这个时候你可以使用万能方法二。
    在这里插入图片描述

方法二:这个方法的主要思想是,首先将DataFrame中需要拆分的列进行拆分,再使用stack()进行轴变换,然后通过index来join即可,如下所示。
首先,将刚刚的df还原成原始形式:
在这里插入图片描述
接下来取出其City列,并切分成多列之后轴转换,之后重新设置索引,并且重命名为Company
在这里插入图片描述
最后删除df里面的Country列,并将DataFrame-df1 使用join到df里面得到最后的结果。
在这里插入图片描述

想要做成的结果如下图(也就是统计每个id下各个page_no出现的次数) 实现的思路是先对page_no这 一列 进行one-hot编码,将 一列 变为 多列 ,然后再用cishu列与之相乘,最后进行groupby之后加和,就得到了最终结果。 代码如下: df = pd.get_dummies(TestA_beh[‘page_no’]) TestA_beh = pd.concat([TestA_beh,df],axis=1) col_page = [‘AAO’, ‘BWA’, ‘BWE’, ‘CQA’, ‘CQB’, 以下是在MySQL中通过SQL语句实现Excel中数据透视表/交叉表/二维表的功能。原理不作赘述,具体示例与代码如下: 1. 数据源预览 SELECT * FROM pivot_table; 2. 数据透视表 SELECT year AS "年份", SUM(CASE WHEN department = "蔬菜" THEN sale END) AS "蔬菜", SUM(CASE WHEN department = "水果" THEN sale END) AS "水果", import pandas as pd df = pd. DataFrame ([{'var1': 'a,b,c', 'var2': 1}, {'var1': 'd,e', 'var2': 2}]) df1 = pd.concat... 在使用 dataframe 时,我们常常需要依据应用场景,需要将原来一条record拆分为 多行 (字段数增加1个,record增加),或者在一个record中根据已有字段拆分为 多列 (仍是1个record,字段数增加)这里还有另外一个问题,如果我们原始数据并没规律的以@分割的固定格式字段,或者原始数据中并没有事先准备好的array格式的字段,如何生成呢?这里个functions.explode和hive中的explode作用类似,可参考。中的explode使用。udf的使用,可以参见。......