python-3.x - 将前一行值放在 DataFrame 的一个单元格中,并使用某些条件来更改值
问题描述
截至目前,我想用前一行值更改“Over_ball”列中为真的值,但使用下面的代码会出错。
#代码
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
解决方案
只要第一行不包含 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']
推荐阅读
- django - Django 没有应用新的修改
- javascript - react redux 中的数据映射有问题吗?
- mysql - 比较 2 个表并返回 MySQL 中的变化
- linux - 对于一些最近提取的文件,Amazon linux Ec2 实例将 uid/groupid 显示为“1000”,但是我的 etc/passwd 文件中没有这样的 uid/gid
- javascript - 如何在页面重新加载时将javascript计时器设置回零
- hadoop - 一个 128 MB 的 HDFS 块可以存储两个大小为 1MB 的不同 ORC 文件吗?
- typescript - 我可以在 Typescript 中创建一个实现接口的类,并且它仍然可以有装饰器吗?
- server - 如何减少 weblogic 服务器中的常驻内存大小
- c++ - g++ -O2 标志给出分段错误
- c# - 如何在文档中正确引用未重载的运算符?