我在最后一行遇到错误:
ValueError: Must have equal len keys and value when setting with an iterable
我不太确定如何纠正这个错误。我试着使用不同的约会时间公式,但我想我可能把事情搞混了。
这是我的df:的一个样本
Commodity Blank Value1 Value 2 Value 3 Date Month
0 All Wheat NaN 1 3 4 2020-08-17 NaN
1 All Wheat NaN 4 4 2 2020-08-17 NaN
2 Corn NaN 1 12 5 2020-08-17 NaN
3 Corn NaN 4 24 5 2020-08-17 NaN
4 Soybeans ENDING MY 2 34 24 2020-08-17 NaN
5 Soybeans ENDING MY 34 2 34 2020-08-17 NaN
6 Sorghum STARTING MY 4 45 3 2020-08-17 8.0
7 Sorghum STARTING MY 4 34 4 2020-08-17 8.0
这是代码:
# Create New Column
df['Calendar Year'] = pd.DatetimeIndex(df['Date']).year
# Marketing Year
df.loc[(df['Blank'] != 'ENDING MY') & (df['Commodity'] == 'All Upland Cotton') & (df['Month'] < 8), 'Marketing Year'] = df['Calendar Year'].astype(int) - 1
df.loc[(df['Blank'] != 'ENDING MY') & (df['Commodity'] == 'All Upland Cotton') & (df['Month'] >= 8), 'Marketing Year'] = df['Calendar Year'].astype(int)
df.loc[(df['Blank'] != 'ENDING MY') & (df['Commodity'] == 'All Wheat') & (df['Month'] < 6), 'Marketing Year'] = df['Calendar Year'].astype(int) - 1
df.loc[(df['Blank'] != 'ENDING MY') & (df['Commodity'] == 'All Wheat') & (df['Month'] >= 6), 'Marketing Year'] = df['Calendar Year'].astype(int)
df.loc[(df['Blank'] != 'ENDING MY') & (df['Commodity'] == 'Corn') & (df['Month'] < 9), 'Marketing Year'] = df['Calendar Year'].astype(int) - 1
df.loc[df['Blank'] == 'ENDING MY] = df['Calendar Year'].astype(int) - 1
df.loc[df['Blank'] == 'ENDING MY', 'Marketing Year'] = df['Calendar Year'].astype(int) - 1
省略了"营销年份"作为标识符。固定的