如何解决Pandas数据帧中的格式化错误-长度问题或格式化



我在最后一行遇到错误:

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

省略了"营销年份"作为标识符。固定的

最新更新