首页 > 解决方案 > 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

标签: pythonpandas

解决方案


这就是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'
...

推荐阅读