打印pandas列之间的增量差异

时间:2017-07-17 18:57:40

标签: python python-3.x pandas

嗨,这很简单,但我想知道是否有人知道如何打印两列之间的差异。我目前有这个:

    end | begin
    935    916
    961    916
    972    916

我正在努力实现以下目标:

    end | begin | diff
    935    916     916,917,918,919,920...935
    961    916     916,917,918...961
    972    916     916,917,918...972

有没有人知道可以生成这个的简单列操作?目前我的代码是:

timestamp = []
for x in range(len(listdates)):
    while start_date <= listdates[x]:
        timestamp.append(str(start_date)+'|')
        start_date+=1
start_date = 916

timestamp =''。join(timestamp)

但是这段代码非常繁琐,并没有提供正确的输出

1 个答案:

答案 0 :(得分:1)

您可以将applyaxis=1一起用于按行处理,然后将lambda函数用于range

print (df)
   end  begin
0  920    916
1  961    916
2  972    916

df['diff'] = df.apply(lambda x: range(x['begin'], x['end'] + 1), axis=1)
print (df)
  end  begin                                               diff
0  920    916                          (916, 917, 918, 919, 920)
1  961    916  (916, 917, 918, 919, 920, 921, 922, 923, 924, ...
2  972    916  (916, 917, 918, 919, 920, 921, 922, 923, 924, ...

如果需要string s可能会转换int创建的每个range值或更好地使用numpy.arange,请转换为str并列出并使用{ {1}}:

join