python dataframe 列合并,pandas合并多列的值

  python dataframe 列合并,pandas合并多列的值

  我有一个问题,将两列合并为一个在同一个数据帧(开始_结束),也删除空值。我打算将"起点站"和"终点站"合并为"车站",并根据新列"车站"保留"持续时间"。我试过pd.merge,pd.concat,pd.append,但是都解不出来。

  开始_结束的数据帧:

  持续时间终点站起点站

  14 1407南14V pcdxz/p19 509南21 I pcdxz/P20 638第15便士街西北。圆盘烤饼

  27 1532南马萨诸塞州大道杜邦环岛chdmn/p28 759南亚当斯米尔哥伦比亚路chdmn/PE预期输出:

  持续时间电台

  14 1407第14V pcdxz/p19 509第21 I pcdxz/P20 638第15便士pcdxz/p27 1532马萨诸塞大道杜邦圈chdmn/p28 759亚当斯米尔哥伦比亚路chdmn/pCode我目前为止有:

  #开始_结束是数据帧,"起点站"、"终点站"、"持续时间"

  start_end=pd.concat([df_start,df_endpddy)

  这就是我试图做的:

  station=pd.merge([start_end[起点站pddy,start_end[终点站pddypddy

  解决方案df

  持续时间终点站起点站

  0 1407南14V pcdxz/P1 509南21 I pcdxz/p2 638第第15街西北。圆盘烤饼

  3 1532南马萨诸塞大道杜邦环岛chdmn/p4 759南亚当斯米尔哥伦比亚路chdmn/PGE两列相同的名称

  df。列=df。列。海峡。替换(.*?站,站)

  df

  持续时间站站

  0 1407南14V pcdxz/P1 509南21 I pcdxz/p2 638第第15街西北。圆盘烤饼

  3 1532南马萨诸塞大道杜邦环岛chdmn/p4 759南亚当斯米尔哥伦比亚路chdmn/p堆叠然后拆堆。

  s=df.stack()

  s

  0持续时间1407

  第14站五pcdxz/p1持续时间509

  车站21 I pcdxz/p2持续时间638

  西北街15号车站。

  3持续时间1532

  马萨诸塞州站大道杜邦环岛chdmn/p4持续时间759

  站亚当斯厂哥伦比亚路CHD Mn/PD类型:对象

  df=s.unstack()

  df

  持续时间站

  0 1407第14V pcdxz/P1 509第21 I pcdxz/p2 638第第15街西北。

  3 1532马萨诸塞州大道杜邦环岛759亚当斯米尔哥伦比亚路759号

  我是这样认为的:堆创建一个带有多索引的序列,并为您处理空值。它在列名上对齐第二层,因为列名是相同的,所以只有一层——拆分只生成一列。

  如果不更改列名,这实际上只是基于索引之间的差异的猜测。

  #不改变列名

  美国指数

  labels=[[0,0,1,1,2,2,3,3,4,4pddy,[0,2,0,0,1,0,2,0,2,2 pdypddy

  #列名相同

  美国指数

  labels=[[0,0,1,1,2,2,3,3,4,4pddy,[0,1,0,1,0,1,0,1,0,1,1,1 pdypddy

  似乎有点棘手,也许会有人评论一下。

  替代方法——使用pd.concat和。德罗普纳

  stations=pd.concat([df.iloc[:1pddy,df.iloc[:2pddypddy.德罗普纳()

  stations.name=stations

  站

  西北街15号2号。

  0第14V pcdxz/P1第21 I pcdxz/P3马萨诸塞大道杜邦圆环chdmn/p4亚当斯米尔哥伦比亚路chdmn/pName:车站,数据类型:对象

  df2=PD。concat([df[ Duration pddy,stationspddy,axis=1]

  df2

  持续时间电台

  0 1407第14V pcdxz/P1 509第21 I pcdxz/p2 638第第15街西北。

  3 1532马萨诸塞州大道杜邦环岛759亚当斯米尔哥伦比亚路759号

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: