如何使用1 for循环语句同时获取值和索引

2024-10-01 09:37:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,我想使用for循环来获取列值和该值的索引。你知道吗

下面是dataframe,我试图从Date列获取值

enter image description here

下面是我的代码。我声明了一个count变量来跟踪索引。 我的问题是:在for循环声明中,我是否可以在一行中获得列值及其索引?你知道吗

意思是在这行for row in loadexpense_df["Date"]:,row是包含date列中的值的变量。可以改进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

Tags: 数据代码in声明dataframedffordate
3条回答

iterrows返回索引和行,行表示为一个系列

for index, row in df.iterrows():

更多信息请参见此处:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iterrows.html

下面是一个可以帮助你的例子。你知道吗

mylist = ["ball","cat","apple"]

for idx, val in enumerate(mylist):
    print ("index is {0} and value is {1}".format(idx, val))

这就是iteritems的用途:

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'
...

相关问题 更多 >