Python空数据集场景下能否用if-else创建新数据集?
解决空数据集下创建df2的问题
你的思路是对的,可以用if-else解决,但你写的代码有两个问题:一是if/else语句末尾没加冒号,二是条件判断逻辑不对——df['count_days'].dt.days >=1返回的是布尔值组成的Series,没法直接作为if的判断条件,if需要的是单个True/False值。
正确的做法是先判断数据集是否为空(用df.empty),再执行对应操作:
if df.empty: print("No Data") else: df2 = df['count_days'].dt.days >= 1
如果还要考虑count_days列可能不存在的情况,可以再加个列存在的判断:
if df.empty or 'count_days' not in df.columns: print("No Data or missing 'count_days' column") else: df2 = df['count_days'].dt.days >= 1
为什么原代码会报错?因为当df是空数据集时,df['count_days']是空的时间序列,调用dt.days时没有可处理的时间数据,自然会触发错误。先判断数据集是否为空就能避免这个问题。
内容的提问来源于stack exchange,提问作者Crystal
相关产品推荐
相关产品推荐

