python - 1 for循环语句如何同时获取值和索引
问题描述
我有一个数据框,我想使用 for 循环来获取列值和该值的索引。
下面是数据框,我正在尝试从 Date 列中获取值
下面是我的代码。我声明了一个计数变量来跟踪索引。我的问题:是否有可能在 for 循环声明中,我可以在一行中获取列值及其索引?
在这一行for row in loadexpense_df["Date"]:
中,row 是包含日期列中的值的变量。可以改进for循环以获取值及其索引吗?
谢谢
count =0
load = loadexpense_df["Date"]
for row in loadexpense_df["Date"]:
checkMonth = row.strftime("%m")
if checkMonth == '01':
loadexpense_df["Month"][count] = "Jul"
elif checkMonth == '02':
loadexpense_df["Month"][count] = "Aug"
elif checkMonth == '03':
loadexpense_df["Month"][count] = "Sep"
elif checkMonth == '04':
count = count +1
解决方案
这就是ititems的用途:
for idx, val in loadexpense_df['Date'].items():
pass
但是,您的代码可能在链索引方面存在一些问题。例如:
loadexpense_df["Month"][count] = "Jul"
我觉得你应该看看np.select
,或者.loc
访问。这有助于提高代码的可读性和性能。例如:
checkMonth = loadexpense_df['Date'].dt.month
loadexpense_df.loc[checkMonth==1, 'month'] = 'Jul'
...
推荐阅读
- javascript - 在 React 中将 props 传递给 this.props.children
- vue.js - vue/element ui 表单验证
- amazon-web-services - 使用 Azure AD 联合 SSO 访问 AWS 的桌面应用程序
- amazon-cloudformation - 这可能有可选的 SSM 参数吗?
- java - 如何使用版本 2 的 spring boot admin 和版本 1.5 的 spring boot?
- ios - Nativescript:添加运行脚本阶段
- javascript - 对 Flask 的 jquery Ajax 请求
- swift - 如果他们的 mod 总和在 Swift 中大于 10,如何保持更新数字
- google-cloud-firestore - 柜台上的 Firestore 规则
- r - 双变量求和