gpt4 book ai didi

python - 如何根据第一列和第二列之间的差异获取数据框中第三列的值?

转载 作者:行者123 更新时间:2023-11-28 17:56:00 25 4
gpt4 key购买 nike

所以,我有如下表格:

开始结束5 54 810 194 4

现在我想做的是,如果特定行中两列的值相等,则在第 3 列中只打印其中一列。如果不同,则打印-开始+“-”+结束。数据在数据框中。例子是这样的:

开始结束范围5 5 54 8 4-810 19 10-194 4 4

这是我正在尝试的代码:

if df['start'] - df['end'] != 0:
df['range'] = df['start'] + "-" + df['end']
else:
df['range'] = df['start']

但这行不通。我该怎么做?

最佳答案

使用numpy.where :

df['range'] = np.where(df['start'] != df['end'], df['start'] + "-" + df['end'], df['start'])

类似的另一种解决方案:

df['range'] = df['start'] + np.where(df['start'] != df['end'], "-" + df['end'], '')

print (df)
start end range
0 5 5 5
1 4 8 4-8
2 10 19 10-19
3 4 4 4

如果值不是字符串的解决方案:

s = df['start'].astype(str) 
e = df['end'].astype(str)

df['range'] = np.where(df['start'] != df['end'], s + "-" + e, s)

类似的另一种解决方案:

df['range'] = s + np.where(df['start'] != df['end'], "-" + e, '')

关于python - 如何根据第一列和第二列之间的差异获取数据框中第三列的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58388559/

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