【发布时间】:2021-07-18 01:20:01
【问题描述】:
我有一个如下所示的数据框:
PR Order Season Rj
0 3001913971 3445046069 202112 NaN
1 3002026058 1445132366 202121 NaN
2 3002026059 1445132365 202122 NaN
3 3002026063 1445132367 202211 NaN
4 3002026069 1445132375 202121 NaN
当我第一次运行下面的代码时,它工作正常
df['Season'] = df['Season'].astype(str)
df.loc[(df['Season'].str[-2:] == '11') & (df['Season'].str.len() == 6),'Season'] = 'Spring ' + df.loc[df['Season'].str[-2:] == '11','Season'].str[:4]
df.loc[(df['Season'].str[-2:] == '12') & (df['Season'].str.len() == 6),'Season'] = 'Summer ' + df.loc[df['Season'].str[-2:] == '12','Season'].str[:4]
df.loc[(df['Season'].str[-2:] == '21') & (df['Season'].str.len() == 6),'Season'] = 'Autumn ' + df.loc[df['Season'].str[-2:] == '21','Season'].str[:4]
df.loc[(df['Season'].str[-2:] == '22') & (df['Season'].str.len() == 6),'Season'] = 'Holiday ' + df.loc[df['Season'].str[-2:] == '22','Season'].str[:4]
第一次运行的结果是这样的。
PR Order Season Rj
0 3001913971 3445046069 Summer 2021 NaN
1 3002026058 1445132366 Autumn 2021 NaN
2 3002026059 1445132365 Holiday 2021 NaN
3 3002026063 1445132367 Spring 2022 NaN
4 3002026069 1445132375 Autumn 2021 NaN
但是当我第二次运行它时,它会引发错误
ValueError: Must have equal len keys and value when setting with an iterable
你知道为什么吗?非常感谢
【问题讨论】:
-
为什么要跑两次?
-
我只是不小心运行了第二次并得到了这样的错误,所以想知道原因来帮助我更好地理解 pandas 数据框,因为我是一个 python 初学者
-
你从哪里得到数据框?可能是dataframe的源数据发生了变化,导致输出数据发生了变化。
-
这是我的 google drive 中的一个 excel 文件,我在 google colab 中运行代码
-
colab 根本不稳定。在您的本地计算机上运行它,它可能会正常工作。