python - 熊猫数据框:根据其他列中的条件更改列中的值
问题描述
我在熊猫数据框中有一个大型面板数据。示例数据可以在这里找到:
import pandas as pd
df = pd.read_csv('example_data.csv')
df.head()
ID Year y DOB Year_of_death event
223725 1991 6 1975.0 2021 No
223725 1992 6 1975.0 2021 No
223725 1993 6 1975.0 2021 No
223725 1994 6 1975.0 2021 No
223725 1995 6 1975.0 2021 No
我想更改列中的值,event
以便如果该
Year
值对应于该值,则该特定行Year_of_death
的观察值或更改为,否则保持为。event
ID
Yes
No
例如,ID
68084329 在 2012 年死亡,但Yes
在列中的每个观察值中都有值event
。我想更改它,以便只有Year
2012ID
的Yes
行在event
. 其他event
值应保持为No
。
df.loc[df['ID'] == '68084329']
ID Year y DOB Year_of_death event
68084329 1991 6 1942.0 2012 Yes
68084329 1992 5 1942.0 2012 Yes
68084329 1993 5 1942.0 2012 Yes
68084329 1994 6 1942.0 2012 Yes
68084329 1995 6 1942.0 2012 Yes
68084329 1996 5 1942.0 2012 Yes
68084329 1997 6 1942.0 2012 Yes
68084329 1998 5 1942.0 2012 Yes
68084329 1999 6 1942.0 2012 Yes
68084329 2000 6 1942.0 2012 Yes
68084329 2001 6 1942.0 2012 Yes
68084329 2002 5 1942.0 2012 Yes
68084329 2003 6 1942.0 2012 Yes
68084329 2004 5 1942.0 2012 Yes
68084329 2005 5 1942.0 2012 Yes
68084329 2006 6 1942.0 2012 Yes
68084329 2007 6 1942.0 2012 Yes
68084329 2008 6 1942.0 2012 Yes
68084329 2010 5 1942.0 2012 Yes
68084329 2011 5 1942.0 2012 Yes
68084329 2012 0 1942.0 2012 Yes
如何根据上述条件对具有多个 ID 的大型 DataFrame 进行这些更改?
解决方案
df.loc[df[Year'] == df['Year of Death'], 'Event'] = 'Yes'
这在我正在编写的一段类似的代码中起作用。
推荐阅读
- android - 如何在 android studio 中监听 shell 命令的响应?
- php - 从 MySQL 普通数据库值迁移到完全 AES 加密值 (PHP APi)
- sql-server - 如何在不使用 ms-sql 中的 rank/row_number 函数的情况下获得每个类别的前 2 名
- regex - 为什么来自 git ls-remote 的这个正则表达式不能正常工作?
- python - 如何在没有隐写模块的情况下将 txt 文件隐藏到图片中?
- javascript - 如何在反应路由器中从 app.js 访问组件参数
- html - Django 使用 AJAX 更新 HTML 表
- flutter - 如何在颤动中使用 web_socket_channel 监听来自 php MySQL 服务器的更改
- android - 如何使用 Kotlin 在 Activity 类之外的 Android 中获取文件
- reactjs - react hooks状态管理解决方案是否有redux-saga替代方案