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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。