gpt4 book ai didi

python - 打印 pandas 列之间的增量差异

转载 作者:太空宇宙 更新时间:2023-11-03 15:00:40 26 4
gpt4 key购买 nike

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

    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

时间戳 = ''.join(时间戳)

但是这段代码非常乏味并且无法提供正确的输出

最佳答案

您可以使用apply使用 axis=1 按行进行处理,然后使用 range 进行 lambda 函数:

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, ...

如果需要strings,可以转换由range创建的每个int值,或者更好地使用numpy.arange ,转换为 str 并列出并使用 join:

df['diff'] = df.apply(lambda x: ','.join(np.arange(x['begin'], x['end']+ 1)
.astype(str).tolist()), 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,925,926,92...
2 972 916 916,917,918,919,920,921,922,923,924,925,926,92...

关于python - 打印 pandas 列之间的增量差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45151688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com