【发布时间】:2020-06-03 22:53:45
【问题描述】:
这是我的代码:
def f(row):
if row['CountInBedDate'] == 1 and row['CountOutBedDate'] == 1:
SleepDate = row['DateInBed']
InBedTimeFinal = row['InBedTime']
OutBedTimeFinal = row['OutBedTime']
else:
SleepDate = -1
InBedTimeFinal = -1
OutBedTimeFinal = -1
return SleepDate, InBedTimeFinal, OutBedTimeFinal
s1['SleepDate'], s1['InBedTimeFinal'], s1['OutBedTimeFinal'] = s1.apply(f, axis=1)
我想用 apply() 创建 3 个新列,但是有
ValueError: too many values to unpack (expected 3)
如果我使用它,只会创建一列,并结合 3 个值:
s1['SleepDate', 'InBedTimeFinal', 'OutBedTimeFinal'] = s1.apply(f, axis=1)
你能帮忙吗?谢谢。
【问题讨论】:
-
你能提供更多关于
s1的信息吗?看起来s1.apply(f, axis=1)返回的值超过 3 个。 -
s1 是一个有很多列的数据框