pandas 中日期时间对象的向量运算不起作用
Vector operations in pandas with datatime object not working
我正在尝试在 pandas
中执行以下操作
new_data["age_in_days"] = ( datetime(new_data["year"],6,30)-new_data["date"] ).days
应该在“age_in_days”列上计算对象的年龄。但实际上,我收到一条错误消息:“TypeError:无法将系列转换为 ”。
“日期”是一个日期时间对象。 “年”是一个整数。
运行 这仅适用于一个对象(例如索引为 2 的对象),另一方面,它按预期完美工作:
new_data["age_in_days"][2] = ( datetime(new_data["year"][2],6,30)-new_data["date"][2] ).days
我应该怎么做才能让它发挥作用?是因为未处理的 NaN 吗?我希望“age_in_days”也只是 NaN。
这里的问题是您试图将 datetime 与整个 df 列而不是 int 一起使用,然后使用此输出(它将是 int)来重新定义您的 df 列。
所以你需要在这里做的是将你想要的行为应用到每一行。
new_data["age_in_days"] =new_data.apply(lambda x :(datetime(x["year"],6,30)-x["date"]).days, axis=1)
这应该有效
我正在尝试在 pandas
中执行以下操作new_data["age_in_days"] = ( datetime(new_data["year"],6,30)-new_data["date"] ).days
应该在“age_in_days”列上计算对象的年龄。但实际上,我收到一条错误消息:“TypeError:无法将系列转换为
运行 这仅适用于一个对象(例如索引为 2 的对象),另一方面,它按预期完美工作:
new_data["age_in_days"][2] = ( datetime(new_data["year"][2],6,30)-new_data["date"][2] ).days
我应该怎么做才能让它发挥作用?是因为未处理的 NaN 吗?我希望“age_in_days”也只是 NaN。
这里的问题是您试图将 datetime 与整个 df 列而不是 int 一起使用,然后使用此输出(它将是 int)来重新定义您的 df 列。 所以你需要在这里做的是将你想要的行为应用到每一行。
new_data["age_in_days"] =new_data.apply(lambda x :(datetime(x["year"],6,30)-x["date"]).days, axis=1)
这应该有效