我试图处理一个脚本,其中我试图查找列之间的月份,该脚本工作正常,但每当任何字段为空时,它都会给出一个错误
如果任何NaN值介于两者之间,它必须跳过并移动到下一行
如何解决此错误:
输入数据:
Month1 Month2 Month_list
Mar2020 Dec2020
Nov2020 Jan2021
NaN NaN
Sep2020 Feb2021
Oct2020 Dec2020
NaN NaN
Dec2020 Mar2021
预期输出:
预期产量
Month1 Month2 Month_list
Mar2020 Sep2020 Mar2020,Apr2020,May2020,Jun2020,Jul2020,Aug2020,Sep2020
Nov2020 Jan2021 Nov2020,Dec2020,Jan2021
NaN NaN NaN
Sep2020 Feb2021 Sep2020,Oct2020,Nov2020,Dec2020,Jan2021,Feb2021
Oct2020 Dec2020 Oct2020,Nov2020,Dec2020
NaN NaN NaN
Dec2020 Mar2021 Dec2020,Jan2021,Feb2021,Mar2021
代码:
def get_date_list(x):
return ",".join(
item.strftime("%b %Y")
for item in pd.date_range(x['Month1'], x['Month2'], freq="MS")
)
df['Month_list'] = df.apply(lambda x: get_date_list(x), axis=1)
Error:ValueError:无论是start
还是end
都不能是NaT
您需要排除带有
NaN
vlaues的列,一种方法如下:输出:
尝试:
印刷品:
IIUC,您的函数需要if else块:
相关问题 更多 >
编程相关推荐