【发布时间】:2021-02-19 17:03:27
【问题描述】:
我在使用df.loc 时遇到以下错误。我有一个参数 s,它是 datetime64[ns],我有一个数据框,其中有两个列 MDT1 和 MTD2,它也是 datetime64[ns] 类型。当我使用 df.loc 使用以下语句时
s= df_1x2['date'].astype (str)+'-'+ df_1x2['Time'].astype(str)
s = pd.to_datetime(s)
df_1x2.loc[(s>df_1x2['MDT1'])&(s<df_1x2['MDT2']),'Morning']= s
代码的最后一行显示 Jupyter Notebook 中的以下错误
ValueError: Can only compare identically-labeled Series objects
但是,当我第二次运行时,它按预期工作。只是在 Jupyter Notebook 中的第一次运行让我遇到了错误。
以下是示例数据文件的下载链接:
Click here to download the sample data file
下面是代码:
s = pd.to_datetime(df['Date']).astype(str)+' '+df['Time.1'].astype(str)+':00'
df['Matchdate'] = pd.to_datetime (s)
d =np.reciprocal(df_1x2[['Home','Draw','Away']].astype(float))
df_1x2['Margin'] = d.sum(axis = 1)-1
df_1x2['Open_DT'] = df_1x2['date'].astype (str)+'-'+ df_1x2['Time'].astype(str)
df_1x2['Open_DT'] = pd.to_datetime(df_1x2['Open_DT'])
df_1x2['Open_DT1'] = df_1x2.groupby(['Match','Odds_Type'])['Open_DT'].transform(min)
s = df_1x2['Open_DT'] == df_1x2['Open_DT1']
df_1x2.loc[s,'Open'] ='Opening'
df_1x2['Current_DT'] = df_1x2['date'].astype (str)+'-'+ df_1x2['Time'].astype(str)
df_1x2['Current_DT'] = pd.to_datetime(df_1x2['Current_DT'])
df_1x2['Current_DT1'] = df_1x2.groupby(['Match','Odds_Type'])['Current_DT'].transform(max)
sc = df_1x2['Current_DT'] == df_1x2['Current_DT1']
df_1x2.loc[sc,'Current'] ='Current'
df_1x2.loc[df_1x2.Open == 'Opening','Current']='Opening'
df_1x2 ['morning Date'] = pd.Timestamp.today()
Time1 = '08:00:00'
Time2 = '11:00:00'
s = df_1x2['date'].astype (str)+'-'+ df_1x2['Time'].astype(str)
s = pd.to_datetime(s)
df_1x2.reset_index(drop = True, inplace = True)
df_1x2 ['morning Date'] = pd.to_datetime(df_1x2 ['morning Date']).dt.date
df_1x2['MDT1'] = pd.to_datetime(df_1x2['morning Date'].astype(str)+' '+Time1)
df_1x2['MDT2'] = pd.to_datetime(df_1x2['morning Date'].astype(str)+' '+Time2)
df_1x2 .reset_index(drop= True, inplace = True)
df_1x2.loc[(s>df_1x2['MDT1'])&(s<df_1x2['MDT2']),'Morning']= s
我该如何纠正它?
【问题讨论】:
-
可以复制粘贴
df_1x2 -
@wwnde 你的意思是整个数据框吗?
-
如果您还没有找到解决方案,就只管解决问题
-
我将上传csv文件并将代码粘贴到问题中。
标签: python pandas python-datetime pandas-loc