首页 > 解决方案 > 将前一行值放在 DataFrame 的一个单元格中,并使用某些条件来更改值

问题描述

截至目前,我想用前一行值更改“Over_ball”列中为真的值,但使用下面的代码会出错。

X.jpg

#代码

for row in range(0,len(df_3)):
df_3['Over_ball'] = df_3['Over_ball'].replace('True',df_3['Over_ball'].shift(1))

#错误

 Traceback (most recent call last):
 File "<input>", line 2, in <module>
 File "C:\Python 3.9\lib\site-packages\pandas\core\series.py", line 4479, in replace
 return super().replace(
 File "C:\Python 3.9\lib\site-packages\pandas\core\generic.py", line 6918, in replace
 raise ValueError( ValueError: Series.replace cannot use dict-value and non-None to_replace

标签: python-3.xdataframe

解决方案


只要第一行不包含 True 值,您就可以使用以下内容:

for row in range(1, df.shape[0]):
    if df.loc[row,'Over_ball'] == True:
        df.loc[row,'Over_ball'] = df.loc[row-1,'Over_ball'] 

推荐阅读