ValueError: ('长度必须匹配才能比较', (393,), (1,))

问题描述 投票:0回答:1

我正在尝试比较两个日期列中的日期并标记任何有问题的结果,但我不知道该怎么做。

样本数据:

初始合同结束日期 新合同结束日期
2022-07-01 2022-08-01
2022-07-01 2022-06-01
2022-07-01 2022-07-01

这是我格式化日期的方式: df_TrueUp_OP_UD_ET_M['初始合同结束日期'] = pd.to_datetime(df_TrueUp_OP_UD_ET_M['初始合同结束日期']) df_TrueUp_OP_UD_ET_M['新合同结束日期'] = pd.to_datetime(df_TrueUp_OP_UD_ET_M['INew 合同结束日期'])

这是我的代码的样子: df_TrueUp_Check.loc[(df_TrueUp_Check['初始合同结束日期'] > ['新合同结束日期']), 'FLAG'] = 'ERROR'

但我收到以下错误: “ValueError:('长度必须匹配才能比较',(393,),(1,))”

有什么想法吗?谢谢!

我尝试了各种格式化日期的方法。 .astype('datetime64[ns] .dt.normalize()

pandas datetime evaluation
1个回答
0
投票

例子

data = {'colA': {0: '2022-07-01', 1: '2022-07-01', 2: '2022-07-01'},
 'colB': {0: '2022-08-01', 1: '2022-06-01', 2: '2022-07-01'}}
df = pd.DataFrame(data)

df

    colA        colB
0   2022-07-01  2022-08-01
1   2022-07-01  2022-06-01
2   2022-07-01  2022-07-01

代码

df['colA'] = pd.to_datetime(df['colA'])
df['colB'] = pd.to_datetime(df['colB'])
df['colA'] > df['colB']

输出:

0    False
1     True
2    False
dtype: bool

你的代码:

df['colA'] > ['colB']

错误:

ValueError: ('Lengths must match to compare', (3,), (1,))
© www.soinside.com 2019 - 2024. All rights reserved.